您的位置:首页 > 其它

apk通过安装器安装应用并直接打开,进入界面按Home 回到界面,点击应用,打开重新创建新应用的问题描述。

2018-01-04 14:14 483 查看
最近在开发过程中碰到了一个问题:

(android gc 暂不考虑,测试多种机型,后台内存过小,会清理一定内存空间,并不是绝对会将你app杀掉;至于考虑如何大程度保证应用的后台存活率,方法太杂,如有朋友有实践的方法,望留下评论,谢谢~)

1. 由USB跑应用,进入界面,按下Home键返回桌面,点击应用 进入 仍然能返回 之前界面;

2. 通过手机安装器安装应用,安装成功有两个按钮,完成 - 打开。点完成 ,在桌面点击启动应用,退到后台,也能回到之前界面。

3.同上,只不过是点击了打开按钮,那么此时会从安装器直接打开应用,当应用退到后台时,桌面点击,并不是回到了我们之前的页面,而是像第一次打开应用时,比如导航页启动、再到主界面。而当你返回键退出时,又会发现,你又回到了之前Home键退到后台的页面。

其实以上问题不难理解,通过安装器启动应用  Intent没有带Category,而我们打开程序是带了Category,那么我们在我们配置了<actionandroid:name="android.intent.action.MAIN"/>  判断是否有Category;

之前看很多 标注了这样的方法:

if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){
finish();
return;
}


但在很多机型上并不适用;并没有真正的检测到当前页面的 Category,比如:小米5X,华为荣耀;

用以上方法不能解决的可用以下方法:

if(!this.isTaskRoot()) {
Intent mainIntent=getIntent();
String action=mainIntent.getAction();
if(mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
finish();
return;
}
}

有难点希望多探讨谢谢~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐