如何阻止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将会工作,那么另一个线程会怎么做。我试图简化这个问题。
答案 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();
}
希望这有帮助!