0

我有一個應用程序保持隱藏的啓動器。現在我想從撥號程序打開應用程序。所以我有一個BroadcastReceiver來處理事情。Android應用程序在意圖啓動時致命

1)首先,我展示這個應用程式,

ComponentName componentName = new ComponentName(context, 
       SplashActivity.class); 
     context.getPackageManager().setComponentEnabledSetting(
       componentName, 
       PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
       PackageManager.DONT_KILL_APP); 

2)然後啓動一個Intent,

Intent launcher = new Intent(context, SplashActivity.class); 
        launcher.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
        context.startActivity(launcher); 

3)然後我又隱藏應用程序,

ComponentName componentName2 = new ComponentName(context, 
       SplashActivity.class); 
     context.getPackageManager().setComponentEnabledSetting(
       componentName2, 
       PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
       PackageManager.DONT_KILL_APP); 

問題

意圖啓動成功,但應用程序在幾秒鐘後死亡。但是,如果我啓動除SplashActivity以外的任何其他活動,則不會發生此問題。問題是什麼?如何解決?

+0

如果你得到錯誤,然後發佈你的logcat,所以我們可以弄明白。 – Apurva

+0

@Apurva沒有錯誤。只是應用程序自動死亡。 –

回答

1

您可以在Android清單中使用<activity-alias>標記來啓動活動。改變您的清單用於發射活動像如下: -

 <activity-alias 
      android:name="com.watever.SplashActivityAlias" 
      android:targetActivity="com.watever.SplashActivity" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" > 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.MONKEY" /> 
      </intent-filter> 
     </activity-alias> 

,並在代碼中,你是在顯示和隱藏應用程序只使用這是在體現在上述清單別名,SplashActivityAlias所以使用SplashActivityAlias一樣使用別名在您展示和隱藏應用程序的兩種情況下,而不是SplashActivity。 通過上面的事情做,你可以可以使用別名來隱藏與 setComponent EnabledSetting方法您的應用程序圖標,您可以通過使用撥號

啓動您的主要活動是飛濺活動隱藏應用

ComponentName componentName2 = new ComponentName("com.packagename", 
       "com.packagename.HideAppActivity"); 
     context.getPackageManager().setComponentEnabledSetting(
       componentName2, 
       PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
       PackageManager.DONT_KILL_APP); 
+0

要顯示隱藏應用程序圖標,請使用AliasName並啓動應用程序使用targetActivity Name SplashActivity – Pankaj

+0

應用程序在使用別名後不會隱藏。 –

+0

你可以告訴我你如何實現別名代碼 – Pankaj

相關問題