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