我有一个主活动,它运行一个Thread,通过Handler将结果(比如一个字符串)返回给主活动。我正在尝试创建另一个来自tha min活动的Activity,就在创建提到的Thread之后。第二个活动将显示来自主要活动的结果(即字符串字段)(通过添加额外内容发送)。因此,String值首先被初始化为空值,并且在某个时间点之后。 Thread将更新String的值。因此,我必须将此更新值发送到第二个活动,该活动已经位于活动堆栈的顶部,并等待该字符串的更新值。
我环顾四周,但人们讨论了onActivityResult()技术。你对这个的实现有什么想法吗?
答案 0 :(得分:2)
我看到两种可能的解决方案:
SINGLE_TOP
属性,您可以向其发送一个意图并在Activity.onNewIntent()
中处理它。 Intent的SINGLE_TOP
标志也可以正常工作。((SenderActivity) getParent()).setReceiverHandler(handler)
将处理程序从接收者活动传递到发件人活动(此代码位于ReceiverActivity
,setReceiverHandler()
应在SenderActivity
中声明)并使用它可以通知ReceiverActivity
任何更改。 UPD:此方法允许TabActivity与其嵌入式活动之间的通信。它在一般情况下不起作用。答案 1 :(得分:0)
我建议您在Strin值更改的活动中,监听该活动的更改,然后根据String值启动新的活动。您可以使用一个按钮来显示和检查文本是否为空,然后相应地启动活动。 这种方法似乎可行。