Asynctask(从alarmmanager执行)回调到ui

时间:2014-02-02 07:20:16

标签: android callback android-asynctask

我遇到了这个问题。 我的应用程序有一些 asynctasks由警报管理器执行(如闹钟)。我希望在此任务运行时,如果用户正在使用应用的主要活动,则会显示不确定进度条。

我看到这篇文章: android asynctask sending callbacks to ui

使用接口。但由于这不是我执行任务的活动,我无法在asynctask中注册听众。

所以,我被困住了。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

首先,我建议使用IntentService代替AsyncTask

其次,在主活动中创建一个扩展BroadcastReceiver的内部类。

BroadcastReceiver的{​​{1}}中注册内部onResume()的实例,并在Activity中取消注册。

让您的第一个onPause()开始BroadcastReceiver并让IntentService发送一个广播,IntentService的内部BroadcastReceiver将会收听广播Activity正在运行 - 内部Activity可以创建进度条。

BroadcastReceiver完成它需要做的事情时,让它发送另一个广播以表明应该取消进度条。