Android Asynctask(从alarmmanager执行)回调到ui
我对这个有意见。 我的应用程序有一些由alarmmanager执行的异步任务(如闹钟)。我希望在运行此任务时,如果用户正在使用应用程序的mainactivity,则会显示一个不确定进度条 我看到这个帖子: 它使用一个接口。但由于执行任务的不是我的活动,因此我无法在Android Asynctask(从alarmmanager执行)回调到ui,android,callback,android-asynctask,Android,Callback,Android Asynctask,我对这个有意见。 我的应用程序有一些由alarmmanager执行的异步任务(如闹钟)。我希望在运行此任务时,如果用户正在使用应用程序的mainactivity,则会显示一个不确定进度条 我看到这个帖子: 它使用一个接口。但由于执行任务的不是我的活动,因此我无法在asynctask中注册侦听器 所以,我被卡住了。有什么想法吗?首先,我建议使用IntentService而不是AsyncTask 其次,在主活动中创建一个内部类,扩展BroadcastReceiver 在活动的onResume()中
asynctask
中注册侦听器
所以,我被卡住了。有什么想法吗?首先,我建议使用
IntentService
而不是AsyncTask
其次,在主活动中创建一个内部类,扩展BroadcastReceiver
在活动的onResume()
中注册内部BroadcastReceiver
的实例,然后在onPause()
中注销它
让您的第一个BroadcastReceiver
启动IntentService
,并让IntentService
发送一个广播,如果活动运行,您的活动的内部BroadcastReceiver
将监听该广播-然后内部BroadcastReceiver
可以创建进度条
当IntentService
完成它需要做的事情时,让它发送另一个广播,以指示应取消进度条。那么,如果不在活动中,您在哪里调用asynctask?“由alarmmanager执行(如闹钟)。”-当您说“alarmmanager”时你真的是指安卓AlarmManager
服务或其他服务创建的警报吗?是的,我正在使用安卓AlarmManager每小时运行一次asynctask,以获取web中的数据。我确实第一次从活动中调用alarmmanger。但是,用户可以退出活动并在几天后返回。更具体地说,alarmmanager触发我在BroadcastReceiveClass上接收的广播,然后执行asynctask。@user1391967:很高兴我能提供帮助。