用户通知需要上下文

User notification needs context

为了通知用户,我使用了 AlertDialog 或 Snanckbar。它们都需要 Activity 上下文才能显示。三种情况:

现在没有显示消息,因为当接收器启动时,选择器 activity 已完成。另外,它给出了一个 WindowLeaked 异常,因为永远不会关闭 AlertDialog。

有什么想法吗?有没有我遗漏的模式?

  1. 启动 Selector activity (activity B) from Master activity (activity A) 使用 startActivityForResult().
  2. 根据结果显示来自Masteractivity的对话框。

I am implementing a broadcast/receiver pattern so the thread can broadcast the message and the activity receives and shows the message

请使用进程内消息总线(例如,LocalBroadcastManager,greenrobot 的 EventBus)。使用系统广播不仅会浪费 CPU 和电池,还会带来安全问题(例如,任何应用程序都可以监视您的消息)。

Is there a pattern I am missing?

在您的第三种情况下,"master activity" 有责任显示此信息,而不是被销毁的 activity。因此,将信息添加到您传递给 startActivity()Intent,告诉 "master activity" 显示该信息。