0

У меня есть приложение, которое хранится скрыто от запуска. Теперь я хочу открыть приложение из дозвона. Поэтому у меня есть BroadcastReceiver, где я занимаюсь вещами.Приложение для Android, которое было убито на намерении Launch

1) Во-первых я показываю приложение,

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

2) Затем запустите намерению,

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

Задача

Запуск Intent является успешным, но приложение убивается через несколько секунд. Но проблема не возникает, если я запускаю другие действия, кроме SplashActivity. В чем проблема и как ее можно решить?

+0

Если вы получаете ошибку, то разместите свой логарифм, чтобы мы могли понять это. – Apurva

+0

@Apurva Ошибка. Просто приложение автоматически убивается. –

ответ

1

Вы можете использовать тег <activity-alias> в манифесте Android для активности запуска. изменение манифеста для пусковой деятельности, как, как показано ниже: -

 <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 и для запуска приложения use targetActivity Name, которое SplashActivity – Pankaj

+0

Приложение не скрывается после использования псевдонима. –

+0

Можете ли вы показать мне код, как вы реализовали псевдоним – Pankaj