Android BroadcastReceiver和后台Activity练习的最佳做法是什么?

时间:2011-11-11 19:47:24

标签: android android-activity broadcastreceiver

如果启动Intent的目的是接收特定活动但活动在后台,那么此方案中建议的最佳做法是什么?

例如,一个Activity可能触发了一个由IntentService处理的远程服务器的长时间运行登录请求。在长时间运行的登录请求期间,活动将被发送到后台。由于BroadcastReceiver已在Activity中注册,因此它也在后台。登录过程完成,但广播转发器从未接收到发出此信号的意图。

我是否应该使用ContentProvider来存储IntentService中的结果并注册Acitivty / UI以进行更改?如果我采用这种方法并且活动在后台,它会接收ContentProvider更新吗?

1 个答案:

答案 0 :(得分:1)

除非您的应用程序只有一个活动,否则身份验证状态(从未登录,登录,登录已过期)必须驻留在任何单个活动之外。无论是在静态数据成员中还是在某些持久性存储中,都取决于业务规则。

您的活动只会在onResume()中查询该状态(例如,检查静态数据成员)。