相关疑难解决方法(0)

从AsyncTask管理ProgressDialog的最佳方法

我想AsyncTask在我的应用程序中使用for来管理一些业务逻辑.使用separed文件onProgressUpdate(...)AsyncTask定义的方法的最佳模式是什么(不是作为一个类的Activity)我有两个想法:
1.最简单的方法:创建ProgressDialogin Activity(使用onCreateDialog(...)方法)并通过AsyncTask构造函数传递对我的子类的引用(覆盖onProgressUpdate(...)里面)我的AsyncTask子类).此解决方案的缺点是在业务逻辑代码中使用UI组件.

FooTask1.java:

public class FooTask1 extends AsyncTask<Void, Integer, Void> {
private ProgressDialog mProgressDialog;

public FooTask1(ProgressDialog progressDialog) {
    super();
    mProgressDialog = progressDialog;
}

@Override
protected Void doInBackground(Void... unused) {
    // time consuming operation
    for (int i=0; i<=100; i++) {
        this.publishProgress(i);
        try {
            Thread.sleep(100);
        } catch (Exception e) {}
    }
    return null;
}

@Override
protected void onProgressUpdate(Integer... progress) {
    mProgressDialog.setProgress(progress[0]);
} …
Run Code Online (Sandbox Code Playgroud)

android design-patterns android-asynctask

9
推荐指数
1
解决办法
7063
查看次数