的Activity
的onCreate
裏面我做了以下內容:Android的:從一個的AsyncTask的返回值,而不會阻塞UI線程
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AsyncTask<String, Integer, String[]> asynctask = new DownloadFilesTask(this.getActivity()).execute(url);
String[] values = null;
try {
values = asynctask.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
Log.d("AsyncTask", "DONE!");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
這工作,但我阻止與asynctask.get();
UI線程它阻止我從在執行後臺任務期間顯示任何新的UI元素,例如對話框。
所以我的問題:我如何從我的AsyncTask獲取結果值而不會阻止給出此代碼的UI線程?
你有最直接的答案。它現在有用,謝謝! – 2013-02-27 19:58:37
使用AsyncTasks時,請務必說明用戶導航離開的情況,並且在調用postExecute時UI已經死亡。 – Krylez 2013-02-27 20:32:03