如何实时将消息从一个活动发送到另一个活动

时间:2016-09-29 14:01:36

标签: android android-activity

我有两项活动,当我打开Activity2时,Activity1将不会关闭。在Activity1我有一个发布代码(handler.postDelayed())的句柄,当此代码运行时,我需要通知我Activity2以执行其他代码。

我的问题是:如何在不重新打开此消息的情况下将此消息发送给Activity2

我尝试使用具有特定操作的Intent并在onNewIntent()中的Activity2中将其捕获;它有效,但问题是这会重新开启Activity2。我无法将数据保存在SharedPrefs中,因为我的postDelayed()没有修复时间,所以我必须一直在检查。

有人知道我postDelayed()运行时如何发送此消息以及如何在Activity2中将其捕获而不重新打开它?如果可能,请发布示例或链接到一个。

非常感谢...

2 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案,就像所说的@ njzk2一样,只是添加

<activity ..
      android:launchMode= "singleInstance" /> 

<activity ..
      android:launchMode= "singleTask" />

(两者都有效)。

由于

答案 1 :(得分:0)

您不应该使用Activity来处理长时间运行的代码,您应该考虑创建一个IntentService来处理您的后台代码。 IntentService在完成代码运行后可以广播新的Intent。让您的第一个Activity开始Service,然后在第二个Activity中实例化BroadcastReceiver,以便从Service收听更新。

  

发送广播Intent无法启动或恢复Activity。   BroadcastReceiver的{​​{1}}接收并处理   Activity即使您的应用在后台,但却没有   强迫你的应用程序到前台。

相关问题