我的应用程序使用服务通过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
了?我怎样才能确保
答案 0 :(得分:0)
我先删除了通知,然后尝试删除视图/捕获了可能的异常:
try
{
if(ll != null) wm.removeView(ll);
}
catch(IllegalArgumentException e)
{
Log.e("myapp", "removed view that is not there");
}
希望这会有所帮助!