当主要活动具有更新值时,需要通知子活动

时间:2012-01-20 16:25:06

标签: android android-intent

我有一个主活动,它运行一个Thread,通过Handler将结果(比如一个字符串)返回给主活动。我正在尝试创建另一个来自tha min活动的Activity,就在创建提到的Thread之后。第二个活动将显示来自主要活动的结果(即字符串字段)(通过添加额外内容发送)。因此,String值首先被初始化为空值,并且在某个时间点之后。 Thread将更新String的值。因此,我必须将此更新值发送到第二个活动,该活动已经位于活动堆栈的顶部,并等待该字符串的更新值。

我环顾四周,但人们讨论了onActivityResult()技术。你对这个的实现有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我看到两种可能的解决方案:

  • 如果您的第二个活动(接收方)具有SINGLE_TOP属性,您可以向其发送一个意图并在Activity.onNewIntent()中处理它。 Intent的SINGLE_TOP标志也可以正常工作。
  • 您可以通过((SenderActivity) getParent()).setReceiverHandler(handler)将处理程序从接收者活动传递到发件人活动(此代码位于ReceiverActivitysetReceiverHandler()应在SenderActivity中声明)并使用它可以通知ReceiverActivity任何更改。 UPD:此方法允许TabActivity与其嵌入式活动之间的通信。它在一般情况下不起作用。

答案 1 :(得分:0)

我建议您在Strin值更改的活动中,监听该活动的更改,然后根据String值启动新的活动。您可以使用一个按钮来显示和检查文本是否为空,然后相应地启动活动。 这种方法似乎可行。