Вы сказали, что не хотите использовать полупрозрачную активность, но это лучший способ сделать это:
1- В манифесте установите тему «Активность» на Theme.Translucent.NoTitleBar.
2 - Не беспокойтесь о макете для вашей Деятельности и не звоните setContentView().
3- В onCreate()
вашей Деятельности начните обслуживание с startService()
.
4 - Выходите из Активности с помощью finish()
, как только вы запустите Сервис.
Другими словами, ваша активность не должна быть видимой; он может просто убедиться, что ваша служба работает, а затем завершить работу, что звучит так, как вы хотите.
как скрыть иконку ланчера:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" />
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Невозможно сделать кнопку скрытия открытия, потому что речь идет о приложении, а не о библиотеке Google
как отобразить иконку:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
ВАЖНО: Как-то сложно, если вам нужно что-то сделать с основной активностью в приложении, когда оно скрыто. вы столкнетесь с ActivityNotFoundException
. чтобы это работало, вы должны показать значок, прежде чем что-либо делать с основным видом деятельности, и снова скрыть его после завершения.