假设我有两个活动:


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/

10-10 00:54