Android - 当某个操作由另一个线程完成时显示进度条

时间:2014-01-05 20:18:32

标签: android android-asynctask progressdialog

如何阻止UI线程执行任何操作,只显示进度条直到满足某些条件。 例如,我有一个初始化为null的列表,让我们称之为列表。我在UI中启动另一个线程来初始化它的值,这将花费大约10秒。在初始化列表之前,如何阻止UI线程显示进度对话框。

// Initially
List list = null;

// Display progress bar until certain condition is met
while(list == null){
    // Display progress dialog
}

我认为如果我们要求AsyncTask更新列表等,AsyncTask将会工作,那么另一个线程会怎么做。我试图简化这个问题。

1 个答案:

答案 0 :(得分:1)

你需要在mainActivity中创建一个公共方法,命名为examble yourcallback()

而不是实例化OnCreate mainActivity中的所有对象,除了在回调方法中进度条所需的quell ic之外,还可以实例化所有对象 yourcallback()

你的回调 现在你需要创建一个AsyncTask的扩展,你可以在其中声明一个基本方法构造函数 像这样

     privte Activity mainObj;
     public TestAsyncTask(Context context, Activity mainact ) throws Exception {
       mainObj=mainact
       your code 
     }

当任务自然终止类AsyncTask时调用onPostExecute方法

     protected void onPostExecute(Long result) {
        mainObj.yourcallback();
  }
希望这有帮助!