Android Home鍵 點快捷菜單應用重啓問題【完美解決】

前言

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

      


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章