используйте мой метод, если вы хотите запустить скрытое приложение только в первый раз, когда я выполняю прозрачное действие Launcher, подобное этому
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Transparent"
android:excludeFromRecents="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Поэтому я делаю приложение скрытым в панели запуска, помещая этот код в oncreat ()
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, MainActivity.class);
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Поэтому я использую этот код для отображения значка приложения на панели запуска и запускаю его в классе обслуживания, использующем загрузку широковещательного приемника, и в классе широковещательного приема сетевого подключения (autostart.java и networkConnectinCheck.java):
PackageManager p = context.getPackageManager();
ComponentName componentName = new ComponentName(context, MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Теперь я могу запустить приложение впервые руками пользователя, и после этого я использую приложение своего приемника для обеда в любое время.