ProgessDialog必须在AsyncTask或单独的线程中运行吗?

时间:2015-09-18 10:09:25

标签: android-asynctask progressdialog

我有两项活动。第二个活动,如果用户收集数据(他输入新数据),第一个用于显示图表。一旦用户完成第二个活动(通过单击返回),我需要在MainActivity上的图表更新之前进行计算。重要的是,在活动2完成之前,计算首先完成。因此,代码在onBackPressed方法中运行。

似乎有三种选择:

1)使用执行计算的线程并使用单独的处理程序更新ProgressDialog以监视线程完成。处理程序在线程完成后收到消息,然后关闭第二个活动。 Android Studio警告我,处理程序需要是静态的,并警告我内存泄漏。所以这似乎不是一种安全的方法。

2)使用AsyncTask并等到AsyncTask完成后再关闭第二个活动。但是,对于应该在主线程上运行的计算运行单独的线程或AsyncTask来显示ProgressDialog似乎毫无意义。

3)在主线程上显示ProgressDialog。但是,这似乎不可能。

你能否指出这个菜鸟用正确的方法来显示ProgressDialog,同时顺序执行用户必须等待的计算(仅几秒钟)。

谢谢,

1 个答案:

答案 0 :(得分:0)

在Activity 1中使用AsyncTask,不需要打开第二个活动来加载数据和计算你可以在第一个活动中执行,只需在AsyncTask中使用进度对话框并在Asynctask的postExecute方法中关闭该dailog并调用AsyncTask on Activity One的OnCreate()方法。