下载完点击“打开应用”后,按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()之前多一个判断,日志输出情况:

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值