2012-04-04 38 views
0

我的使用情况如下:安卓:尽管在之前的活动调用完成()获取意向书

在活动AI电话:

startActivity(B); 
finish(); 

现在活动的BI的onCreate需要知道的活动,启动B,所以我不知道,如果在活动BI通话的onCreate(...):

getIntent(); 

会我甚至能够得到那个开始活动B的意图或将getIntent()在这一点上已经retur n null,因为我在调用startActivity(B)之后立即完成了Activity A?

+2

您可以通过caliing传递活动名称intent.putExtra(“AvtiVityName”,“Activity A”) – Nishant 2012-04-04 06:41:59

+1

不值得尝试一下吗? lol – Snicolas 2012-04-04 06:44:23

+0

@Nishant:谢谢,我会给你一个 – AgentKnopf 2012-04-04 06:46:16

回答

5

这里

Intent intent = new Intent(A.this, B.class); 
intent.putExtra("activityStarted", "A"); 

和在活动B

String started = getIntent().getExtras().getString("activityStarted"); 
+0

与OP的第一条评论相同,但是最简单的解决方案。 – 2012-04-04 06:51:50

+0

+1已接受,谢谢 - 该工作。 – AgentKnopf 2012-04-04 10:23:08

1

在第一活动中使用以下代码来启动新活动和重启方法()来完成活动::

Intent intent = new Intent(ThisActivity.this, NextActivity.class); 
intent.putExtra("Key", "Value"); 
startActivity(intent); 

@Override 
    protected void onRestart() { 
     // TODO Auto-generated method stub 
     super.onRestart(); 
     finish(); 
    } 

第二活动::

String started = getIntent().getStringExtras("Key"); 
+0

感谢您的回答 - 但是在onRestart中调用finish()的目的是什么?这不是很危险吗? – AgentKnopf 2012-04-04 10:22:48

+0

做到了这一点,因为你想完成当前的活动。所以我做完了你从活动中返回并且不危险 – 2012-04-04 10:37:10

+0

谢谢Agarwal Shankar,它对我的​​菜单系统很有用 – 2015-05-31 17:18:20