Oll*_*e C 9 oop android android-asynctask
在我有一个将从一个单独的线程(使用AsyncTask)更新的UI的场景中,我可以将AsyncTask定义为活动的内部类,但是这有两个缺点我发现有问题:
什么是好的解决方案?使用内部类,但将它所做的一切都抽象到其他类?将对Activity的引用传递给AsyncTask?总是将AsyncTask类定义为内部类,只接受源文件会很大?
Hei*_*upp 13
首要的是:使用时AsyncTask你不能在其中进行UI活动doInBackground().
您可以做的是 - 如果您想要更新长时间运行的后台作业的状态,则publishProgress(values)来自doInBackground().然后,运行时将为这些值调用您的onProgressUpdate(values)回调,该回调在UI线程中运行,您可以从中更新UI.
看看例如https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L336查看示例.
AsyncTask可以在自己的类文件中实现.
我见过的很多例子只是将 a 传递Context到AsyncTask.
public class BackgroundStuff extends AsyncTask<Void, Void, Void> {
...
Context mContext;
...
BackgroundStuff(Context context){
super();
this.mContext = context;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我很想听听是否还有其他人使用其他方法。