Android(安卓)Studio运行app,按HOME键回到桌面,再次点击app图标启动再次打开启动页面解决方案
16lz
2021-01-24
背景
- app有一个启动页面MainActivity,还有其他的页面OtherActivity(是通过启动页中按钮点击跳转过来的)
- MainActivity的启动模式为
android:launchMode="singleTask"
AndroidManifest.xml文件:
流程
- 运行app
- 进入启动页MainActivity
- 点击按钮启动OtherActivity
- 按HOME键回到桌面
- 点击app图标启动
理想的结果是启动app之后界面停留在OtherActivity界面,但是实际上还会重新进入启动界面MainActivity。像一些存在登录界面为启动页面的app,就会出现只要按HOME键就需要重新到登录界面,体验不是很友好。
原因
首先排除系统杀死app进程的原因,因为按HOME键之后通过进程按键是可以启动app,并且还原到按HOME键时的界面。
Android Studio运行启动app的Intent(包含第三方启动应用)和点击app图标启动的Intent内容是不一样的。
解决方案
第一种:
在启动页的onCreate()
方法中setContentView
之前添加如下代码:
if (null != intent && intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) { finish() return}
有些手机设备上第一种方案可能会无效。
第二种:
if (!this.isTaskRoot) { // 判断当前activity是不是所在任务栈的根 if (intent != null) { if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN == intent.action) { finish() return } }}
参考文档
中文 中文2
英文 英文2
更多相关文章
- Android快速实现二维码扫描--Zbar
- Android(安卓)viewPager实现翻动
- Android实现透明指示层
- Appium 测试,实现上下、左右滑动页面【Android,iOS 已验证】
- Android(安卓)跳转到应用市场详细信息页面
- 【Android开发】交互界面布局详解
- Android(安卓)UI开发 View自绘控件 分享
- Android(安卓)界面切换动画效果
- android 请求数据有值,赋值时报错:空指针