Мое приложение использует службу для добавления постоянного наложения на экран через WindowManager:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
wm.addView(ll, ll_lp);
addNotification();
}
Пользователи получают сообщение об ошибке примерно через 10-15 минут работы службы, которая принудительно закрывает приложение со следующим исключением:
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:383)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:285)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:79)
at com.MyApp.MyService.onDestroy(MyService.java:210)
Вот строка в MyService:
@Override
public void onDestroy() {
super.onDestroy();
wm.removeView(ll);
removeNotification();
}
Я предполагаю, что происходит то, что ОС Android убивает мое приложение, и WM больше не может получить доступ к представлению ll
? Как я могу убедиться, что
- Оверлей сохраняется дольше 10-15 минут и не удаляется операционной системой Android.
- Я не получаю эту ошибку, если ее убивают