Android 点击 Home 键导致 APP 重启

抛开内存紧张被回收不说,这种情况只出现在特定的条件下,以下三步可重现这种情况:
1.首次安装 APP 后通过安装程序的打开按钮启动 APP;
2.点击 Home 键回到桌面;
3.点击桌面图标进入 APP。
这时候你就会发现会再次启动 APP 的启动界面,具体原因不清楚,网上找到了解决方案:Android点击home键重启的解决,即在 onCreate 方法里加上如下代码:
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (!this.isTaskRoot()) {
        Intent mainIntent = getIntent();
        String action = mainIntent.getAction();
        if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
            finish();
            return;
        }
    }
}
还有一种方法(不贴链接了,因为不知道哪个是原创,这里只是自己记录一下):
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int flag = getIntent().getFlags();
    //首次启动 Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 为 0
    //再次点击图标启动时就不为零了
    System.out.println("getFlags---" + flag + "------" + (flag & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT));
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
        finish();
        return;
    }
}
PS:这两种方法在 super.onCreate() 方法之后执行有效,在 setContentView() 方法之前和之后都可以,因为我复制的代码的Activity 是继承了一个 BaseActivity 的,父类中已经调用了setContentView() 方法,测试过后有效。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值