Android Studio运行app,按HOME键回到桌面,再次点击app图标启动再次打开启动页面解决方案
背景
- app有一个启动页面MainActivity,还有其他的页面OtherActivity(是通过启动页中按钮点击跳转过来的)
- MainActivity的启动模式为
android:launchMode="singleTask"
AndroidManifest.xml文件:
<applicationandroid:name=".MyApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".MainActivity"android:launchMode="singleTask"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".OtherActivity" />
流程
- 运行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 Studio运行app,按HOME键回到桌面,再次点击app图标启动再次打开启动页面解决方案相关推荐
- Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析...
前言 前些天,测试MM发现了一个比较奇怪的bug. 具体表现是: 1.将app包通过电脑QQ传送到手机QQ上面,点击安装,安装后选择打开app (此间的应用逻辑应该是要触发 [闪屏页Activity] ...
- android studio运行APP到手机
android studio运行APP到手机 一.数据线连接手机调试 1.打开android手机的开发者模式(机型不一样,打开方式不一样,具体可百度) 2.用数据线把电脑和手机连起来(最好用原装数据线 ...
- Android Studio运行app启动模拟器一直卡在“Wating for target device to come online”解决方法
Android Studio运行app启动模拟器一直卡在"Wating for target device to come online"的情况如何解决 在启动模拟器如果一直卡在& ...
- Android Studio 运行HyperLPR开源项目安卓APP
Android Studio 运行HyperLPR开源项目安卓APP 前提:已安装Android Studio 作为一个安卓小白,我学uni-app只是机缘巧合,只是想看看微信小程序怎么开发的,然后一 ...
- 小米5 android studio,Android应用开发android studio运行app,使用模拟器可以,用小米5手机安装失败...
本文将带你了解Android应用开发android studio运行app,使用模拟器可以,用小米5手机安装失败,希望本文对大家学Android有所帮助. < 报错 Session 'app': ...
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
Android Studio 运行按钮灰色的完美解决方法 今天新建项目的时候突然发现编译后运行按钮为灰色. 解决方案:第一步:点击图中的Add Configuration,出来如下界面 第二步:点+号 ...
- Android studio运行出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionExcepti
Android studio运行出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionExcepti ...
- Android Studio 运行项目报错:org.objectweb.asm.tree.analysis.AnalyzerException: Execution can fall off
Android Studio项目,公司主要的一个APP项目,还算庞大,有段时间没过问该项目,有需求要改,又来关注这项目代码,update代码到最新,android studio运行项目,就是run不起 ...
- android o 编译及运行,【转】实践最有效的提高Android Studio运行、编译速度方案
原文:https://blog.csdn.net/xwh_1230/article/details/60961723 实践最有效的提高Android Studio运行.编译速度方案 最有效提升Andr ...
最新文章
- 提高 服务器 内存 利用率_怎样提高AI服务器的利用率
- android 开发时遇到的环境问题3--eclipse整个项目工程报错
- SQL 无限级分类语句
- sklearn使用日志(part1)--特征消除术Recursive feature elimination
- openfire消息通知推送_微信小游戏内测「订阅消息」能力,这是召回用户的「大杀器」吗?...
- 服务器系统报错kernel-power,第十二讲、Linux服务器操作系统1.ppt
- bootstrap 页面分成三列_20分钟成功编写bootstrap响应式页面 就这么简单
- CodeForces Contest #1114: Round #538 (Div. 2)
- mysql主从配置,innobackup备份
- Linux下载 安装cadenceIC617
- php变形的itf条码,itf14条码生成器 第14章生成器.doc
- springMVC实现json 返回到页面
- Java内存泄漏分析系列之七:使用MAT的Histogram和Dominator Tree定位溢出源
- 什么软件适合团队协作?团队协作工具排行
- Crontab定时执行任务
- 011 数据恢复(原理)
- 能ping通服务器但是打不开网页,[问题]能ping通网络,但是打不开页面
- Python《机器学习实战》读书笔记(三)——决策树
- php后门检测工具,phpStudy后门如何检测和修复
- 怎么去掉index.php,怎么去掉后面的bbs/index.php