Android 点击app图标再次启动,应用重启

本文探讨了APP在非Google原生系统下,从后台返回时重启的问题。主要原因是国内手机厂商定制ROM及第三方手机管家的影响。提供了修改Activity启动模式、设置应用持久化、优化onCreate方法等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:关于app第一次安装,进入主页后再进入一个界面A,然后home键回到桌面,再点击app图标,应该显示哪个界面?

有的人肯定说是界面A

但是那是相对于Google原生的系统来说,是界面A
APP的整个底层和framework都可以管

但是比如有的手机会出现这个问题:它会重启APP,并且进入主页
类似的手机有小米、360等,这些都是rom。。。
只要不是Google原生的系统,就会出现这个问题

造成这种问题的主要原因:

国内手机厂商问题,以及手机自带的第三方手机管家

一般遇到这种情况,解决办法:

  1. 第一步:删除第一个Activity的启动模式,或者改为“standard”。

第二步:在application中去设置持久化为 true,防止app挂后台被回收

   android:persistent="true"

1

第三步:在启动的activity的onCreate中加入如下代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}
setContentView(R.layout.activity_splash);
initView();
}

  1. 在启动的activity的onCreate中加入如下代码:

if (!isTaskRoot()) {

finish();

return;

}

启动模式改为默认的

  1. App 重新加载启动页的时候,判断是否已经加载过一次

在启动的activity的onCreate中加入如下代码:

if (!isTaskRoot()) {
final Intent intent = getIntent();
final String intentAction = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && intentAction != null && intentAction.equals(Intent
.ACTION_MAIN)) {
finish();
return;
}
}
————————————————
原文链接:https://blog.youkuaiyun.com/chen_md/article/details/83412497

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值