从AsyncTaskLoader更新UI

Kri*_*s B 5 android android-ui android-asynctask asynctaskloader

我已将我转换AsyncTaskAsyncTaskLoader(主要用于处理配置更改).我有TextView我使用的进展状况,并使用onProgressUpdateAsyncTask更新它.它看起来不像AsyncTaskLoader是等价的,所以在loadInBackground(AsyncTaskLoader我)使用它时:

getActivity().runOnUiThread(new Runnable() {
    public void run() {
        ((TextView)getActivity().findViewById(R.id.status)).setText("Updating...");
    }
});
Run Code Online (Sandbox Code Playgroud)

我正在使用它Fragment,这就是我使用的原因getActivity().这项工作非常顺利,除非发生配置更改,例如更改屏幕方向.我AsyncTaskLoader一直在跑(这就是为什么我正在使用AsyncTaskLoader),但runOnUiThread似乎被跳过了.

不知道为什么会被跳过,或者这是从更新UI的最佳方式 AsyncTaskLoader.

更新:

我最终恢复了一个,AsyncTask因为它似乎更适合UI更新.希望他们能将合并的东西合并到AsyncTask一起AsyncTaskLoader.

Ole*_*ich 4

这实际上是可能的。您本质上需要子类化AsyncTaskloader并实现一个publishMessage()方法,该方法将使用 aHandler将进度消息传递给实现该接口ProgressListener(或任何您想要调用的接口)的任何类。

下载此示例:http://www.2shared.com/file/VW68yhZ1/SampleTaskProgressDialogFragme.html(如果离线,请给我发消息)-这是基于http://habrahabr.ru/post/131560/