`
v5browser
  • 浏览: 1134818 次
社区版块
存档分类
最新评论

安卓ApiDemos学习 app/Activity/ReorderActivities

 
阅读更多

展示FLAG_ACTIVITY_REORDER_TO_FRONT的应用

这个demo的画面启动顺序如下

ReorderOnLaunch ---> ReorderTwo ---> ReorderThree ---> ReorderFour


在画面ReorderFour中,再次启动ReorderTwo ,加了参数

Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
能让ReorderTwo 不重新启动,而是将activity stack中的ReorderTwo 直接移动到最顶层


除了刚才的flag之外,常用的还有如下flag

FLAG_ACTIVITY_CLEAR_TOP

如果需要启动的Activity已经在activity stack中,则不重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭,

然后将 Activity直接移动到stack最顶层


FLAG_ACTIVITY_NEW_TASK

启动一个新的task,一般从service中启动一个activity往往需要这个参数


如果需要可定制的activity生命周期管理,就需要自己实现一个stack manager。

大致的原理是定一个baseactivity,所有自己的activity继承base,

在base中,拦截oncreate方法,每次实例化activity时,向自定义的stack中放入新activity的引用

自定义的stack需要单实例模式



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics