假设我有两个 Activity :
- MainActivity:显示存储在 SQLiteDB 中的项目列表
- NotificationActivity:用户可以从中向数据库添加项目的 Activity 。
NotificationActivity 在用户单击通知时打开。接下来,用户将一个项目添加到数据库并关闭 NotificationActivity。如何通知我的 MainActivity 添加了一个对象?
什么行不通:
我不能使用 broadcastreiceiver,因为它在 Activity 暂停时未注册,这当然会在我的 NotificationActivity 打开时发生。
我无法使用
startActivityForResult
,因为 NotificationActivity 从通知打开。我不能使用 MainActivity 的
onResume
,因为我不会在每次恢复 MainActivity 时更新列表。
那么如何从通知打开的 NotificationActivity 向我的 MainActivity 发送消息/对象?
最佳答案
查看您和@Hulk 之间的评论交流,您有以下选择:
使用
BroadcastReceiver
。你说你需要取消注册接收者以防止“Activity has leaked IntentReceiver”。是的,您应该取消注册您的接收器,但您不需要在onPause()
中执行此操作。当您的Activity
被销毁时,您可以在onDestroy()
中执行此操作。BroadcastReceiver
可以在您的Activity
处于 Activity 状态时保持活跃收听。这里没有内存泄漏。使用
static
(全局)变量,当NotificationActivity
对数据进行更改时,该变量设置为true
。在MainActivity.onResume()
中,您可以检查此变量并相应地更新 UI。
关于Android如何从通知打开的 Activity 向 Activity 发送消息/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377690/