Intereting Posts
Установить цвет фона элемента меню при наведении на Android Как скрыть элементы управления в VideoView в Android? Вызывается ли OnItemSelectedListener.onNothingSelected? Настройка WebView для просмотра рабочего стола, а не для мобильного сайта Android – Ошибка FragmentTabHost "Нет вкладки, известной для тега null" Android: как воссоздать панель действий при изменении фрагмента Как обнаружить левый и правый наклон устройства Android, установленного с помощью акселерометра? Получение `Error: Can not get property ': lib' on null object` в новом проекте Android Studio Динамические ссылки Firebase обрабатываются дважды Как слушать изменения в базе данных контактов Как объявить обертку содержимого динамической кнопке в коде Android.os.NetworkOnMainThreadException в doInBackground от AsyncTask Новый знак Google в Android Gradle build fail с java 1.8, инструмент сборки 2.2.0-alpha4, включить jackOptions Недействительный период обновления виджета Android не работает

Приложение для автоматического запуска после завершения загрузки в Android

Я хочу создать приложение, которое имеет параметры автозапуска в своих настройках. Я сделал настройку активности в своем приложении, которая получена из PreferenceActivity и дает CheckBoxPreference для автоматического запуска. Если включена опция автоматического запуска, мое приложение должно начинаться при завершении загрузки телефона. И если параметр автоматического запуска отключен, он не должен начинаться с завершения загрузки.

Для этого я реализовал производный класс BroadcastReceiver, который получает намерение BOOT_COMPLETED, объявляет приемник в AndroidManifest.xml и также дает разрешение в AndroidManifest.xml.

В приложении также есть производный класс приложения и запуск службы также из метода onCreate производного класса приложения. Если я объявлю приемник в AndroidManifest.xml, то после загрузки завершена onCreate моего приложения, и после этого вызывается метод onReceive BroadcastReceiver.

Теперь проблема в том, что мое приложение запускается при загрузке каждый раз, когда автозапуск включен или отключен. Можно ли не запускать приложение, когда автоматический запуск отключен?

Solutions Collecting From Web of "Приложение для автоматического запуска после завершения загрузки в Android"

Вы можете использовать разделяемое предпочтение для хранения логического значения для isAutoStartEnabled и проверить это значение в BroadcastReciver, запустить намерение только в том случае, если оно верно.

В вашем случае проблема заключается не в том, принимаете ли вы трансляцию, но кто получает трансляцию. Удачи..

Я надеюсь, что это помогает..

Я думаю, что начиная с Android 3.1 ваш BroadcastReceiver получает BOOT_COMPLETED он не собирается работать. Пользователь должен запускать приложение, взаимодействуя с ним.

Итак, после загрузки устройства все сторонние приложения лежат как остановка.

И в настоящее время для вашего приложения вы можете использовать SharedPreferences для автоматического запуска вашего приложения.

ОБНОВЛЕНИЕ: ( Только для версии Android ниже 3.1 для более высокой версии она работает, но вы должны взаимодействовать с пользователем через приложение после загрузки на устройстве )

Вам нужно использовать BroadcastReceiver с намерением android.intent.action.BOOT_COMPLETED .

Добавьте в файл манифеста следующее:

 <receiver android:name="App_Receiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

Класс App_Receiver, реализующий BoradcastReciever . onReceive() метод onReceive() и начните свою любимую деятельность из своего приложения.

 public void onReceive(Context context, Intent intent) { // make sure you receive "BOOT_COMPLETED" // Here isAutoStartEnabled check sharedPreferences for Auto Start flag if ( isAutoStartEnabled ) { if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))) { // Start the service or activity } } 

Вы должны добавить использование-разрешение android.permission.RECEIVE_BOOT_COMPLETED в ваш манифест.

 final SharedPreferences sharedPreferences = getSharedPreferences("Application", MODE_PRIVATE); boolean isAutoStartEnabled = sharedPreferences.getBoolean("isAutoStartEnabled", false); if ( isAutoStartEnabled ) { startActivity(new Intent()); } 

Я надеюсь, это поможет вам

Это работает для меня:

  public class BootCompleteReceiver extends BroadcastReceiver { public static final String PREFS_NAME = "MyPrefsFile"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { Log.d("boot completed", "boot completed caught"); Boolean autoRestart = false; SharedPreferences sp = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); autoRestart = sp.getBoolean("autoRestart", false); if (autoRestart){ Log.d("boot completed", "auto restart true"); Intent i = new Intent(context, WelcomeScreen.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } } 

}