程序员人生 网站导航

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

栏目:综合技术时间:2014-12-13 08:51:26

前言

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

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


解决方案:

方案1:

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


方案2:

   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);
    }

      


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐