Служба Android Закрыть неожиданно

У меня есть служба с BroadcastReceiver, которая связывается с активностью с помощью метода «exampleMethod ()». Эта служба запускается и работает правильно, но через некоторое время она остановлена ​​Android, и я должен ее перезапустить. Можно ли гарантировать, что служба не будет остановлена ​​в течение длительного времени?

public class SMS_Service extends Service{ private BroadcastReceiver rec_sms = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { MainActivity.exampleMethod(); } }; @Override public int onStartCommand(Intent intent, int flags, int startId) { // We want this service to continue running until it is explicitly // stopped, so return sticky. return START_STICKY; } 

Через некоторое время Служба остановлена ​​Android

Первое, что имеет значение, это то, почему ваша служба остановлена ​​системой Android,

Когда пользователь напрямую взаимодействует с компонентом этого процесса (то есть с активностью), Android будет очень стараться поддерживать этот процесс, и вы не увидите его убитым, за исключением чрезвычайных обстоятельств.

  • Если это связано с низкой памятью, ничего не может быть сделано. Когда вы убиваете что-то для памяти, весь процесс (включая объект приложения) убивается, и в этот момент в нем не выполняется код.

  • Если служба просто уничтожается, потому что ее больше не нужно запускать, ее вызов будет вызываться onDestroy (), и когда служба позже понадобится, создается новый экземпляр и вызывается onCreate ().

Можно ли убедиться, что служба не остановлена ​​в течение длительного времени?

Это невозможно. Самое близкое, что вы можете получить, – через startForeground (), но даже это не гарантирует, что ваш сервис будет жить вечно.

Более того, это серьезный анти-шаблон в Android. Пользователи ненавидят приложения, которые пытаются работать вечно, поэтому мы должны бороться с убийцами задач и т. П.

Intereting Posts
Стиль прокрутки Spinner Как установить нестандартный размер звезд в RatingBar Включая предварительно созданную статическую библиотеку в системе Android build NavigationDrawer RecyclerView выбранные элементы меняют цвет Изображение растянуто вертикально при использовании Glide в Grid View Android Эта версия библиотеки рендеринга более поздняя, ​​чем ваша версия Android Studio. Обновите Android Studio Создать файл формы xml в папке с возможностью рисования в андроид-студии Как правильно обновить AppWidget? Proguard ParseException: «Ожидание ключевого слова« разрешает »,« allowoptimization »или« allowobfuscation »перед« includedescriptorclasses »» на -Keep Прокрутка ListView до позиции после загрузки курсора Ошибка Native Build для Android при построении apk Сохранить позицию прокрутки с каждым обновлением в режиме просмотра списка Как сделать независимым предварительный просмотр камеры на андроиде? Android Studio ADB уничтожает файлы logcat при сбое приложения! Ohh Myy Отдельный поиск для фрагментов