我希望问题是我想创建一个启动 AsyncTask 的方法,等到 Task 结束,然后返回 onPostExecute 方法中提供的值。所以从我的主要我只想调用该方法并获取由 te AsyncTask 返回的值。那可能吗?这种方法看起来如何?
问问题
1363 次
2 回答
1
假设您有一个名为 task 的 AsyncTask 实例。在这种情况下,您可以:
task.execute(parameters);
Result result = task.get();
方法get()
将等到任务完成并从中返回结果。
PS您正在尝试同步执行异步任务,这引发了一个问题-“您是否需要AsyncTask”?
于 2013-09-14T17:29:45.710 回答
1
只需执行 AsyncTask 并调用包含逻辑 onPostExecute() 方法的特定方法。请参阅我使用的示例代码。
protected void onCreate(Bundle savedInstanceState) {
customContactList = (ListView)findViewById(R.id.listView1);
ContactsAsyncTask newTask = new ContactsAsyncTask(this);
newTask.execute();
}
private class ContactsAsyncTask extends AsyncTask<Void, Void, ArrayList<String> >{
ProgressDialog dialog;
private SecondActivity context;
public ContactsAsyncTask(SecondActivity secondActivity) {
// TODO Auto-generated constructor stub
this.context = secondActivity;
}
protected void onPostExecute(ArrayList<String> result) {
super.onPostExecute(result);
context.useContacts(result);
}
public void useContacts(ArrayList<String> data) {
adapter = new CustomAdapter(SecondActivity.this,data);
customContactList.setAdapter(adapter);
}
于 2013-09-14T18:01:34.780 回答