android launchmode singleinstance后台切换问题
2015-10-23 10:22
471 查看
项目中因为需要设置一个activity B launchMode为singleInstance, 一个activity A为singleTask, 从A进入B后按home键进后台,然后从后台直接进入程序,显示的界面结果为A,应该为B!
原因:
android启动应用程序后会自动创建一个task,如果在程序中打开singleInstance模式的activity,如果没有检测到已存在task,则会重新创建另一个task,这就像第一人在地球上,而带有singleinstance的人在火星上,应用程序则是宇宙,这时如果应用程序在后台没有被销毁的情况下再次点击图标进入程序,会优先加载地球上的人(对地球人比较亲)。
解决办法:
在B中设置一个boolean变量,在初次创建的时候设置为true,复写onBackPressed(),在里面设置boolean值为false(防止进入后台时的最后一个界面是A时也进入B),然后在A中复写onstart()方法,在里面调用B的boolean变量,判断如果为true则直接进入B。
到此完美解决!!!
原因:
android启动应用程序后会自动创建一个task,如果在程序中打开singleInstance模式的activity,如果没有检测到已存在task,则会重新创建另一个task,这就像第一人在地球上,而带有singleinstance的人在火星上,应用程序则是宇宙,这时如果应用程序在后台没有被销毁的情况下再次点击图标进入程序,会优先加载地球上的人(对地球人比较亲)。
解决办法:
在B中设置一个boolean变量,在初次创建的时候设置为true,复写onBackPressed(),在里面设置boolean值为false(防止进入后台时的最后一个界面是A时也进入B),然后在A中复写onstart()方法,在里面调用B的boolean变量,判断如果为true则直接进入B。
到此完美解决!!!
相关文章推荐
- 【FastDev4Android框架开发】Android首页图片自动无限循环轮播Gallery+FlowIndicator(二)
- Android 的NumberPicker相关问题
- 使用aapt查看apk包名和启动的activity
- Android textview 显示不全的问题
- Android开发中无处不在的设计模式——原型模式
- Android官方提供的支持不同屏幕大小的全部方法
- Android开发总结笔记 四大组件之ContentPovider(下) 1-2-9
- 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错误集合到本文
- 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错误集合到本文
- android比较时间
- Android 线程池及多线程下载,Progressbar动态更新以及文件保存sd卡
- Android 线程池及多线程下载,Progressbar动态更新以及文件保存sd卡
- AndroidScreenSlide项目切换view动画效果《IT蓝豹》
- Android--Activity简介及生命周期
- AndroidVideoPlayer在线播放视频
- android 动画实现(一)Tween动画
- Android 三大图片缓存原理、特性对比
- Android API Level最新版本到6.0Platform Codenames, Versions, API Levels, and NDK Releases
- Android Fragment应用实战
- android ListViewA-Z字母索引