2

我有一个活动(Activity_A),它有一个handler并且receiving messages来自外部library。问题是Activity_A启动活动Activity_BActivity_B启动时Activity_A receives a messagehandler我想“发送”到Activity_B.

怎么做?

我无法将handlerfrom移动Activity_A到,Activity_B因为某些messages接收必须由Activity_A.

我想避免使用global/static variables. 是否有可能以某种方式保存对我创建时Activity_A的引用?如何发送from to ?Activity_BintentmessageActivity_AActivity_B

这里重要的一点是,是的,我想将一个对象从一个活动传递到另一个活动,但不是在我创建新活动的那一刻(以包的形式传递对象)。每当我从外部库收到消息时,我都想异步执行此操作。

4

2 回答 2

9

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_AActivity_B了一条新消息?” 使用计时器

于 2013-04-15T11:42:42.253 回答
0

应用程序不能那样工作。如果您希望活动完成某些工作,它必须对用户可见。您可以考虑服务做后台工作(即传感器处理),或制作活动 B 片段 - 然后活动 A 将仍然在前台,而它的片段对用户可见。

于 2013-04-15T11:43:31.440 回答