2014-06-05 58 views
0

如何保存和记住由特定活动启动的活动?假设我有使用startActivityForResult()启动活动2的活动1。 后来我看到以下调用序列:在Android序列上调用其他活动的活动

 onPause called from Activity1! 
     onSaveInstanceState called from Activity1 
     onActivityResult called from Activity1 

后来,当我打的后退按钮从活性2回活动1,我看叫onRestart:

 onRestart called from Activity1 
     onResume called from Activity1 

所以我的问题是现在我如何确定转换是从Activity2 - > Activity1而不是(比如说)Activity3 - > Activity1?

回答

1

一种可能的方法是使用startActivityFprResult代替。完成任何其他活动(在本例中为活动2或活动3)时,请致电setResult(RESULT_OK, intent)并提供Intent。这将交付给onActivityResult中的Activity1,您可以在Intent中添加一些额外信息以确定刚才完成的Activity

+0

但我在哪里可以保存我在onActivityResult()中获得的信息?我认为在Activity2或Activity3启动正确后调用它?我想要弄清楚什么时候Activity1被重新启动*是哪个活动(2或3)刚刚在运行。这可能吗? – user3079275

+0

当您使用'startActivityForResult'打开的活动结束时,您将获得'onActivityResult'。它在Activity2 _launches_之后未被调用,它在Activity2 _finishes_之后被调用并且您返回到Activity1。 – Karakuri