3

LocalBroadcastManager使活动(如果有的话)对活动暂停或停止时发送的广播做出反应的最佳方法是什么。如果与正常广播不同,我找不到太多细节LocalBroadcastManager,但如果活动在后台,似乎仍然会被称为事件。但这会导致一些问题,因为只要不显示活动,就无法进行一些 UI 修改。

这就是为什么我更愿意在活动回到顶部时处理所有广播。但是我该怎么做。我正在考虑一个队列,它将获取一个可运行的列表,当活动恢复到运行状态时,这些可运行列表会被执行。但我认为这是某种矫枉过正,因为 android surly 确实有一个机制。

那么这样做的正确方法是什么?

4

3 回答 3

2

我过去所做的是让我的活动注册一个接收器 onResume 并取消注册 onPause。

当您完成创建证书后,将更新视图和发送广播所需的任何信息保存到本地存储。

如果活动正在运行,它将接收广播并自行更新。如果它被暂停,您应该读取本地存储 onResume 并相应地更新。

于 2013-02-22T18:49:06.463 回答
1

毕竟我找到了适合我需要的解决方案。我创建了一个 BroadcastReceiver,用作我的活动的子类。每当活动进入暂停状态时,它都会在我的 BroadcastReceiver 上调用 .pause()。从那时起,所有传入的 Intent 都将被放入队列中,并将在 Activity 调用 .unpause() 时刷新。

于 2013-04-22T15:35:38.987 回答
-1

为什么不简单地取消注册接收器 onDestroy?那么当activity暂停时,你仍然可以在receiver中执行代码吗?

于 2013-04-06T05:45:11.550 回答