我遇到了这个问题。 我的应用程序有一些 asynctasks由警报管理器执行(如闹钟)。我希望在此任务运行时,如果用户正在使用应用的主要活动,则会显示不确定进度条。
我看到这篇文章: android asynctask sending callbacks to ui
使用接口。但由于这不是我执行任务的活动,我无法在asynctask
中注册听众。
所以,我被困住了。有什么想法吗?
答案 0 :(得分:1)
首先,我建议使用IntentService
代替AsyncTask
。
其次,在主活动中创建一个扩展BroadcastReceiver
的内部类。
在BroadcastReceiver
的{{1}}中注册内部onResume()
的实例,并在Activity
中取消注册。
让您的第一个onPause()
开始BroadcastReceiver
并让IntentService
发送一个广播,IntentService
的内部BroadcastReceiver
将会收听广播Activity
正在运行 - 内部Activity
可以创建进度条。
当BroadcastReceiver
完成它需要做的事情时,让它发送另一个广播以表明应该取消进度条。