Edw*_*aak 1 java android android-asynctask
在我的内部onCreate,Activity我做了以下几点:
@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);
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我阻止了UI线程asynctask.get();,阻止我在执行后台任务期间显示任何新的UI元素,如对话框.
所以我的问题是:如何在不阻止给定此代码的UI线程的情况下从AsyncTask获取结果值?
把它移到onPostExecute:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1373 次 |
| 最近记录: |