本文中的示例介绍了Android Activity启动模式的singleTop。 共享仅供参考。 具体情况如下。
上一篇文章《Android Activity启动模式之standard实例详解》介绍了活动的默认启动模式standard。 本文继续介绍Activity的singleTop模式。
singleTop模式:如果Activity的活动模式设置为singleTop,则在启动活动时首先检查堆栈活动是否处于活动状态,如果处于活动状态,则使用当前实例
(1)修改AndroidManifest.xml
修改此配置文件,将主活动的启动模式设置为singleTop,如下所示:
Android : name='.main activity '
Android:级别='@string/app_name '
Android : launch mode=' singletop '
将活动的launchMode设置为singleTop。
)2)发布程序并查看日志
无论单击多少次按钮,都不会打印新日志。 这是因为,如果发现当前堆栈顶部的活动是主活动,启动模式是singleTop,并且堆栈顶部是该活动,则使用当前实例,而不会创建新实例因为MainActivity只有一个实例,所以只需按一次Back键就可以结束当前活动。
如果现在的堆栈顶部活动部是主活动的话? 结果会是什么? 做以下实验。
(1)创建新事件MyActivity1
布局文件如下所示。
安卓: layout _ width=' fill _ parent '
Android : layout _ height=' fill _ parent '
安卓: orientation=' vertical '
android:id='@ id/myButton1'
安卓: layout _ width=' match _ parent '
安卓: layout _ height=' wrap _ content '
Android : text=' my activity1button ' /
在AndroidManifest.xml文件中注册当前活动(可选)。
)2)修改MainActivity.java的onCreate方法
@Override
保护性视频创建(bundlesavedinstancestate )。
super.oncreate (savedinstancestate;
//打印当前对象
log.d('mainactivity ',this.toString ) );
拆下title
requestwindowfeature (window.feature _ no _ title;
setcontentview (r.layout.activity _ main;
取得button1
buttonbutton1=(button ) findviewbyid(r.id.button1);
//添加单击事件
button1. setonclicklistener (newonclicklistener ) )。
@Override
公共void onclick (view view ) {
单击按钮可启动MyActivity1活动,以测试singleTop启动模式
intent intent=new intent (main activity.this,MyActivity1.class );
//开始活动
开始活动(intent;
}
);
}
也就是说,单击按钮可以跳转到MyActivity1事件
)3)修改MyActivity1的onCreate方法
@Override
保护性视频创建(bundlesavedinstancestate )。
super.oncreate (savedinstancestate;
//打印当前对象
log.d('myactivity1',this.toString ) );
requestwindowfeature (window.feature _ no _ title;
setcontentview (r.layout.activity1_ my;
//获取按钮
ButtonmyButton=(Button ) findviewbyid(r.id.myButton1);
//点击事件
my button.setonclicklistener (newonclicklistener ) )。
@Override
公共void onclick (view arg0) {
开始主活动事件
intent intent=new intent (my activity1. this,MainActivity.class );
开始活动(intent;
}
);
}
也就是说,单击按钮可以跳转到主事件MainActivity。
)4)发布程序并查看日志
在主活动MainActivity中,单击按钮进入MyActivity1,然后单击按钮再次进入MainActivity。 日志应显示如下:
第一个日志首次进入主活动打印,单击按钮进入MyActivity1,打印第二个日志。 单击MyActivity1按钮时,堆栈顶部的活动将变为MyActivity1,因此单击该按钮将创建新的MainActivity实例。
在这种情况下,单击“Back”以转至MyActivity1,然后再次单击以转至MainActivity,再单击以退出程序。
对Android Activity相关内容感兴趣的读者请参阅本网站的专题文章“《Android编程之activity操作技巧总结》”
希望本文对大家的Android编程有帮助。