Android 如何实时地从一个活动向另一个活动发送消息

Android 如何实时地从一个活动向另一个活动发送消息,android,android-activity,Android,Android Activity,我有两个活动,当我打开Activity2时,Activity1不会关闭。在Activity1中,我有一个用于发布代码的句柄(handler.postDelayed()),当此代码运行时,我需要通知我的Activity2以便执行其他代码 我的问题是:如何在不重新打开的情况下将此消息发送到活动2 我尝试将意图与特定操作一起使用,并在活动2中的onNewIntent()中捕获它;它可以工作,但问题是这会重新打开我的活动2。我无法将数据保存在SharedPrefs中,因为我的postDelayed()没

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

我的问题是:如何在不重新打开的情况下将此消息发送到活动2

我尝试将
意图
与特定操作一起使用,并在
活动2中的
onNewIntent()
中捕获它;它可以工作,但问题是这会重新打开我的
活动2
。我无法将数据保存在SharedPrefs中,因为我的
postDelayed()
没有固定的时间,所以我必须一直检查

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


非常感谢…

您不应该使用
活动来处理长时间运行的代码,您可能应该考虑创建一个来处理您的背景代码。
IntentService
可以在运行完代码后广播新的
Intent
。让您的第一个
活动
启动
服务
,然后在第二个
活动
中实例化一个,以侦听
服务
的更新

发送广播
意图
不会启动或恢复
活动
活动的
广播接收器
接收并处理
Intent
对象,即使你的应用程序在后台,但不在后台 将你的应用程序强制放到前台


这是一个简单的解决方案,如@njzk2所说,只需添加

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


(两种方法都有效)


感谢启动活动时使用单实例模式。您可以将广播消息从第一个活动发送到第二个活动。我无法使用服务。我的活动1是家庭活动,活动2可以打开也可以不打开。所以我需要在从1发送消息到2之前进行验证。如果应用程序已关闭,则应发送任何消息。但是无论如何谢谢。@Emily您所描述的案例正是
服务
的目的,因为
服务
可以在应用程序终止后继续存在,而
活动
则不能。我不知道发送消息之前需要“验证”是什么意思,但除非通过用户交互验证,否则可以直接在
服务中执行。
<activity ..
      android:launchMode= "singleTask" />