我的活动(Activity_A)
有handler
且来自外部receiving messages
的{{1}}。问题是library
启动了活动Activity_A
。启动Activity_B
后,我Activity_B
上Activity_A
receives a message
我要“发送”给handler
。
怎么做?
我无法将Activity_B
从handler
移至Activity_A
,因为收到的部分Activity_B
必须由messages
我想避免使用Activity_A.
。
在创建global/static variables
时,是否有可能以某种方式保存Activity_A
对Activity_B
的引用?如何从intent
向message
发送Activity_A
?
这里的一个重点是,是的,我想将一个对象从一个活动传递到另一个活动,但不是在我创建新活动的那一刻(将一个对象传递到一个包中)。每当我从外部库收到消息时,我都想异步地执行此操作。
答案 0 :(得分:8)
在Activity_A
String msg = "message";
Intent i = new Intent(Activity_A.this, Activity_B.class);
i.putExtra("keyMessage", msg);
startActivity(i);
在Activity_B
Bundle extras = getIntent().getExtras();
String msg = extras.getString("keyMessage");
希望它有所帮助。
更新:
我描述了两个活动的互动过程。但是如果消息来自库,当Activity_B
运行时 - 此方法不相关。
尝试将处理程序移动到某些Service,这将在您需要时运行。从Activity_A
和Activity_B
您可以定期查询服务“传来新消息?”使用Timer。
答案 1 :(得分:0)
应用程序不能以这种方式工作。如果您希望活动完成某项工作,则必须对用户可见。 你可以考虑服务来做后台工作(即传感器处理),或制作活动B片段 - 然后活动A仍然在前景,而它的片段对用户是可见的。