Android之基础系列(二)

活动的启动模式

1.standard
系统默认的启动模式 (不管活动有没有 反正启动了就创建新的对象 感觉挺傻的)
2.singleTop
举例:如果只有活动一存在 则不管怎么启动 只会有一个对象,不会创建新的对象
如果两个活动存在 活动一去启动活动二的话 然后活动二启动活动一的时候 活动一又会被重新创建 因此这个启动模式针对一个活动挺好 多了则与standard没区别 (还是有点傻)
3.singleTask
只要栈中有活动存在 就会去寻找需要启动的活动 如果有则启动原来的没有就创建新的
举例:活动一启动活动二 活动二去启动活动一 则活动二销毁 原来的活动一启动
(稍微好点 不过由于活动是栈结构 导致活动二销毁)
4.singleInstance
较为复杂的启动模式,会创建独有的返回栈(可以实现活动共享)
在这里插入图片描述
我来说明一下这个图
活动一启动活动二(但是活动二由于启动模式的不同会存在另一个活动中)
然后活动二去启动活动三
但返回的时候 活动三是直接返回到活动一的(因为活动一与活动三是位于一个返回栈中)
最后返回到活动二

============================================================
使用小技巧一

知晓当前活动是哪个活动

创建一个BaseActivity类 然后功能则是打印每个类的类名
然后再让以后的Activity的子类 去继承BaseActivity
在这里插入图片描述
使用技巧二
随时随地退出程序(目的是有时候 启动了太多活动 用这种办法可以直接退出所有活动 不需要去一个个的back)
通过BaseActivity 来把活动添加到 列表里 然后在去操作
在这里插入图片描述
在这里插入图片描述

这是用来消灭之前的所有活动
android.os.Process.killProcess(android.os.Process.myPid()); 是表示杀掉当前的线程
在这里插入图片描述

使用小技巧三
启动活动的最佳写法
自定义一个actionStart 方法 (上下文参数 数据1 数据2)
在这里插入图片描述
启动就直接这样启动就可以了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41910103/article/details/82931766
今日推荐