我有一项活动。在此活动中,我想使用startActivityForResult()启动另一个活动。据我所知,我的基本活动是在一个主GUI线程的进程中启动的。 但据我所知,startActivityForResult()是异步的,这意味着我的新活动将在不同的线程中执行。 我无法找到有关内部线程的信息。如果只有一个GUI线程,这些函数如何异步工作?
答案 0 :(得分:5)
但据我了解, startActivityForResult()是 异步,这意味着我的新 活动将在一个 不同的主题。
startActivityForResult()
是异步的。这并不意味着您的新活动将在不同的线程中执行。如果新活动是您自己的应用程序的一部分,它将在主应用程序线程上运行,就像所有其他活动一样。
与如果只有一个GUI线程,这些函数如何异步工作?
startActivityForResult()
一样, startActivity()
不会立即执行任何操作。相反,它将消息放入消息队列,然后返回。当您将控制权返回给Android时(例如,您的onClick()
方法结束),Android会返回处理该队列中的消息。当它到达您的开始活动消息时,它会启动新活动。
答案 1 :(得分:0)
在您的意图中以Extras的形式传递您想要的任何信息。
Intent i = new Intent(getApplicationContext(), YourClass.class);
i.putExtra("EXTRA_INFO", <your info here>);
startActivityForResult(i);
并在您的新活动中
protected void onCreate(Bundle savedInstanceState) {
if(getIntent().hasExtra("EXTRA_INFO"){
mString = getIntent().getStringExtra("EXTRA_INFO");
}
}