我试图在收到推送通知时更新UI的状态。为了做到这一点,我需要启动一个AsyncTask,执行一些网络操作,然后根据结果更新UI。
根据BroadcastReceiver的文档,从接收器中执行异步操作是不安全的,因为执行它的进程可能会在onReceive()返回后立即被杀死,假设该进程中没有其他"应用程序组件"。
BroadcastReceiver运行在自己的进程中还是与包含Activity相同的进程中?由于只要有UI更新,我就只关心任务完成与否,所以如果activity关闭,我不担心AsyncTask会死亡。假设BroadcastReceiver在与activity相同的进程中,从接收器中启动我描述的任务是否安全?
编辑:为了澄清,我在activity的onResume()中注册接收器,并在onPause()中注销它,因此只有在activity已经处于活动状态时才会接收意图。
根据BroadcastReceiver的文档,从接收器中执行异步操作是不安全的,因为执行它的进程可能会在onReceive()返回后立即被杀死,假设该进程中没有其他"应用程序组件"。
BroadcastReceiver运行在自己的进程中还是与包含Activity相同的进程中?由于只要有UI更新,我就只关心任务完成与否,所以如果activity关闭,我不担心AsyncTask会死亡。假设BroadcastReceiver在与activity相同的进程中,从接收器中启动我描述的任务是否安全?
编辑:为了澄清,我在activity的onResume()中注册接收器,并在onPause()中注销它,因此只有在activity已经处于活动状态时才会接收意图。
Service
就是它的本意,一个在用户不需要知道的侧面运行的服务。希望这能让你明白。 - Andy