2013-05-04 143 views
0

嗨!如果从其他活动开始活动,则启动方法

我要问一个非常愚蠢的问题,但我向你们保证,我在网上搜索,要么没有应答(可能性很小),或者我遇到一个解决方案,但一直无法识别它。

不管怎么说,那就是:让我们说我有2个活动,A和B.活动B是我的应用程序启动活动,所以当我开始我的应用程序,活动B是第一次运行。从那里开始,我将通过意向开始活动A.现在,我进入活动A并通过意图再次开始活动B.现在,通过活动A的意图启动活动B,我想运行活动B中的showStuff()方法。

对不起,我奇怪的故事,我很遗憾,我们无法表达自己的赵彤语言。非常感谢您的帮助!

回答

1

传递一个布尔标志 “showStuff” 虽然意图时,入门C

Intent intent = new Intent(this, B.class); 
intent.putExtra("showStuff", true); 
startActivity(intent); 

,在b中的onCreate

Intent intent = getIntent(); 
if (intent != null) { 
    boolean showStuff = intent.getBooleanExtra("showStuff", false); 
    if (showStuff) { 
     showStuff(); 
    } 
} 

也在B改写onNewIntent

@Override 
protected void onNewIntent(Intent intent) 
{ 
    super.onNewIntent(intent); 

    if (intent != null) { 
     boolean showStuff = intent.getBooleanExtra("showStuff", false); 
     if (showStuff) { 
      showStuff(); 
     } 
    } 
} 
+0

谢谢。但是,如果没有意图称为活动(就像应用程序第一次启动时那样)。 getIntent()方法会返回false吗? – geekkid 2013-05-04 22:52:54

+0

getIntent将返回null,如果它不为null getExtra将为假如果不是由A设置 – 2013-05-04 22:58:14

+0

首先,我并没有质疑这种做法会起作用,但现在我试图将它放在我的代码中,并且它不起作用。 showStuff布尔值将始终为假,if块永远不会运行。可能是什么问题? – geekkid 2013-05-05 19:52:44