Activity的实例化设置
1.android:launchMode=”standard”
默认标准, 每次startActivity都会实例化一个实例
2.android:launchMode=”singleTop”
如果在堆栈顶部已经有这个activity的实例则不重新实例化,否则就实例化一个新的activity
3.android:launchMode=”singleTask” (可理解为单例)
如果在堆栈中存在此activity的实例(任意位置),则不重新实例化activity对象 而是直接复用之前的activity对象 在这个activity对象上面的其他activity对象全部移除(相当于这些activity被销毁)
4.android:launchMode=”singleInstance”
单独启动一个堆栈来存放此启动模式的activity实例
情境描述:笔者遇到的情况是这样的,Activity1有一张图片,点击后跳到Activity2查看此图片的大图。单击的时候很正常,但是双击的时候会产生两个Activity2的实例,因为在第一次点击后,Activity1还没来得及跳到Activity2,就又接收到一次点击事件,故生成两个Activity2实例(实际上我们并没有为双击设置什么点击效果,我们假设此刻用户误操作),这显然不是我们想要的,此时就可以把Activity2设置为单例模式。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-05 15:21:14