Android Home键 点快捷菜单应用重启问题【完美解决】

来源:互联网 发布:纸介阅读与网络阅读 编辑:程序博客网 时间:2024/06/07 02:17

前言

1、这个问题困扰我n久n久

2、网上出现很多解决方案,大多是设置lanchModel 虽然这样能解决一些问题,但是不能完全解决,且与我的情况也不相符


解决方案:

方案一:

    1、如果你的程序有管理activity的栈,可以在启动LogoActivity的onCreate中判断这个栈是存在其他的activity 如果有 本身直接 finish + return 。这样是ok,但是总感觉有种不靠谱的感觉。


方案二:

   2、 无意中发现原来是创建的快捷方式的问题,快捷方式的flag或者intent的创建方式导致重启。

        关于如何创建快捷方式 这里省略

    看代码

   public void addShortCut(){
        
        Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
        // 设置属性
    ...

 ...

 ...

        //点击快捷方式的操作

        这里的intent 必须要新创建的,不能使用 getintent 或者getPackmager.getLaunchIntentFor...等方式创建,如果这样创建导致 setflag无效
        Intent intent = new Intent();

         intent.setComponent(getComponentName());

         intent.setAction(intent.ACTION_MAIN);

         intent.addCategory(Intent.CATEGORY_LAUNCHER);

       //要添加这句话

        intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED| Intent.FLAG_ACTIVITY_NEW_TASK);
       
        // 设置启动程序
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
        //广播通知桌面去创建
        this.sendBroadcast(shortcut);
    }

      


1 0
原创粉丝点击