如果从其他活动开始活动,则启动方法
问题描述:
我要问一个非常愚蠢的问题,但我向你们保证,我在网上搜索,要么没有应答(可能性很小),或者我遇到一个解决方案,但一直无法识别它。
不管怎么说,那就是:让我们说我有2个活动,A和B.活动B是我的应用程序启动活动,所以当我开始我的应用程序,活动B是第一次运行。从那里开始,我将通过意向开始活动A.现在,我进入活动A并通过意图再次开始活动B.现在,通过活动A的意图启动活动B,我想运行活动B中的showStuff()方法。
对不起,我奇怪的故事,我很遗憾,我们无法表达自己的赵彤语言。非常感谢您的帮助!
答
传递一个布尔标志 “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();
}
}
}
谢谢。但是,如果没有意图称为活动(就像应用程序第一次启动时那样)。 getIntent()方法会返回false吗? – geekkid 2013-05-04 22:52:54
getIntent将返回null,如果它不为null getExtra将为假如果不是由A设置 – 2013-05-04 22:58:14
首先,我并没有质疑这种做法会起作用,但现在我试图将它放在我的代码中,并且它不起作用。 showStuff布尔值将始终为假,if块永远不会运行。可能是什么问题? – geekkid 2013-05-05 19:52:44