下载完点击“打开应用”后,按HOME键回到桌面,再次点击应用,没有回到之前的页面,而是打开新的应用

情景再现:在开发的时候,一般安装替换原来的应用,打开应用是不会发生这个问题的,而是当我们从下载链接下载应用,下载完成后,一般系统会有“完成”和“直接打开”两个选项。如果点击“完成”,应用是正常运行的,不会出现标题所说的问题;而当点击“直接打开”,问题就来了,打开应用之后,随便弄点操作,然后按HOME键,回到桌面,一般情况下,我们再点击桌面应用图标,是会回到按HOME之前的页面,然而这次它并不是朝我们预想的方向走,你打开应用后会发现,它不是回到之前的页面,而是启动了新的应用,之前的页面也没有被kill掉,按下返回键还是会回退到之前的页面,等于是打开了两个相同的应用!

解决方案:这个问题困扰了我很久,也查找了很多资料,也没有得到解决(没有找到),网上都是说将第二个页面的launchMode属性设置为singleTask,比如说有两个页面,第一个是登录界面,第二个为主界面,将主界面的启动模式设置为singleTask,这样虽然按照之前的操作流程,在第二次打开应用,进到主界面的时候,只有一个,但是这样每次都要到登录界面再到主界面,情况虽然有所改善,但还是没有完美解决。

完美解决方案:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
           int flag=getIntent().getFlags();
	   System.out.println("getFlags---"+flag+"------"+(flag&Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT));
	   if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
		//完美解决:APP下载安装后,点击“直接打开”,启动应用后,按下HOME键,再次点击桌面上的应用,会重启一个新的应用问题
                finish();
                return;
           }
    }

就是在onCreate()内的setContentView()之前多一个判断,日志输出情况:

《下载完点击“打开应用”后,按HOME键回到桌面,再次点击应用,没有回到之前的页面,而是打开新的应用》

第一个输出,是正常打开应用的情况,第二个输出,是按标题的操作流程进行的。
参考资料:点击打开链接点击打开链接

    原文作者:画虎烂
    原文地址: https://blog.csdn.net/a631855639/article/details/39368137
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞