doInBackground 메서드의 외부 클래스에서 가져온 값을 사용하려고합니다.HttpAsyncTask의 외부 클래스에서 가져온 값을 사용하십시오.
나는 모든 것을 onCreate()에서 수행했지만, 그 값을 얻는 올바른 방법은 무엇입니까?
어쨌든 다른 요청을 할 수도 있습니다. 그런 다음 이것을 AsyncTask를 한 후
public class Client{
public CLient(String email, String phNum){
this.email = email;
this.phNum = phNum;
}
}
같은 클라이언트 클래스를 생성
HttpAsyncTask.execute(client);
처럼 실행 호출에 해당 값을 전달할 수
public class MenuActivity extends Activity {
cUserData ud = new cUserData(this); //This is my external class
String email;
String phone;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Bundle bundle = this.getIntent().getExtras();
((myApp) this.getApplication()).setSomeVariable(bundle.getString("email"));
cUserData ud = new cUserData(this);
String email= ud.getEmail; //I get the values from the external class
String phone = ud.getTelephone();
new HttpAsyncTask().execute();
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String mEmail = email; //These values are null
String mPhone = phone;
String url = "http://www.myUrl.com/app/get.aspx?email=" + mEmail + "&telephone=" + mPhone;
HttpClient Client = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
try {
Client.execute(httpget);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}
http://stackoverflow.com/questions/24752274/passing-parameters-in-httpasynctask-execute – Carsten
ud.getEmail은 다른 클래스에서 호출하는 메서드입니다. – imj
public String getTelephone() { TelephonyManager telephonyManager; String context = Context.TELEPHONY_SERVICE; telephonyManager = (TelephonyManager) mContext.getSystemService (context); String mPhoneNumber = telephonyManager.getLine1Number(); return mPhoneNumber @ Archie.bpgc – imj