Android如何从通知打开的 Activity 向 Activity 发送消息/对象

标签 android android-activity android-notifications

假设我有两个 Activity :

  1. MainActivity:显示存储在 SQLiteDB 中的项目列表
  2. NotificationActivity:用户可以从中向数据库添加项目的 Activity 。

NotificationActivity 在用户单击通知时打开。接下来,用户将一个项目添加到数据库并关闭 NotificationActivity。如何通知我的 MainActivity 添加了一个对象?

什么行不通:

  • 我不能使用 broadcastreiceiver,因为它在 Activity 暂停时未注册,这当然会在我的 NotificationActivity 打开时发生。

  • 我无法使用 startActivityForResult,因为 NotificationActivity 从通知打开。

  • 我不能使用 MainActivity 的 onResume,因为我不会在每次恢复 MainActivity 时更新列表。

那么如何从通知打开的 NotificationActivity 向我的 MainActivity 发送消息/对象?

最佳答案

查看您和@Hulk 之间的评论交流,您有以下选择:

  1. 使用 BroadcastReceiver。你说你需要取消注册接收者以防止“Activity has leaked IntentReceiver”。是的,您应该取消注册您的接收器,但您不需要在 onPause() 中执行此操作。当您的 Activity 被销毁时,您可以在 onDestroy() 中执行此操作。 BroadcastReceiver 可以在您的 Activity 处于 Activity 状态时保持活跃收听。这里没有内存泄漏。

  2. 使用 static(全局)变量,当 NotificationActivity 对数据进行更改时,该变量设置为 true。在 MainActivity.onResume() 中,您可以检查此变量并相应地更新 UI。

关于Android如何从通知打开的 Activity 向 Activity 发送消息/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377690/

相关文章:

Android Intent to Google Goggles 总是导致 RESULT_CANCELLED。如何为我的 Activity 恢复合法结果?

java - 从类到 Activity 中获得值(value)?

android - 如何使用带有 AsyncTask 的 Android Studio 读取 Internet 中的文件?

android - react-native android 应用程序从 google-spreadsheet 获取和显示数据

java - 在另一个类 Android 中使用方法

android - 拥有两个不同的 HitBuilder(Social 和 Event)的目的是什么?

xml - 通过菜单按钮调用首选项时强制关闭消息

android - 待定 Intent 未按预期工作

android - 如何在 Firebase 应用通知中设置更大的图标?

java - 如何隐藏 Android 状态栏中的通知图标?