Android WindowManager优雅的崩溃处理

Android WindowManager优雅的崩溃处理,android,exception-handling,crash,popup,android-windowmanager,Android,Exception Handling,Crash,Popup,Android Windowmanager,我正在为Android编写一个应用程序,它使用WindowManager类创建弹出窗口。一切正常,只是我担心我的应用程序会崩溃。我是在这样的假设下运行的,不管我的应用程序编码得多么好,总会有人在某处遇到崩溃 也就是说,我想为我的应用程序崩溃找到一个优雅的解决方案。目前,如果在我的应用程序中的任何位置抛出未捕获的异常,窗口将保持可见,并且由于我使用的窗口类型和大小,系统对话框“应用程序已崩溃”不可触摸。这会导致死锁,通常需要硬重置设备才能解决此问题 我的第一个想法是设置一个线程.UncaughtE

我正在为Android编写一个应用程序,它使用
WindowManager
类创建弹出窗口。一切正常,只是我担心我的应用程序会崩溃。我是在这样的假设下运行的,不管我的应用程序编码得多么好,总会有人在某处遇到崩溃

也就是说,我想为我的应用程序崩溃找到一个优雅的解决方案。目前,如果在我的应用程序中的任何位置抛出未捕获的异常,窗口将保持可见,并且由于我使用的窗口类型和大小,系统对话框“应用程序已崩溃”不可触摸。这会导致死锁,通常需要硬重置设备才能解决此问题

我的第一个想法是设置一个
线程.UncaughtExceptionHandler
,其代码如下:

Process.killProcess(Process.myPid());
System.exit(0);
不幸的是,当我在日志中看到该方法被调用时,应用程序并没有像我预期的那样崩溃(进程死亡、所有窗口消失等)


在后台服务中使用
WindowManager#addView
时,有没有更优雅的方法来处理崩溃问题?

我想知道为什么应用程序崩溃后,窗口不会自动删除。您使用多个进程吗?不,一个进程,虽然我有多个服务,但只有一个服务处理WindowManager。我发现它们的持久性很奇怪,而且它们还经常干扰InputManager(你不能触摸屏幕的任何部分或软件按钮)。