我正在为Android编写一个使用WindowManager
类来创建弹出窗口的应用程序。一切都很好,除了我担心我的应用程序崩溃。我的假设是,无论我的应用程序编码得多好,某个地方的人都会遇到崩溃。
那就是说,我想为我的应用程序崩溃找到一个优雅的解决方案。目前,如果在我的应用程序中的任何地方抛出未捕获的异常,窗口仍然可见,并且由于我正在使用的窗口类型和大小,系统对话框"应用程序已崩溃,"是不可触摸的。这会导致死锁,并且通常需要对设备进行硬重置以解决此问题。
我的第一个想法是设置一个Thread.UncaughtExceptionHandler
,代码如下:
Process.killProcess(Process.myPid());
System.exit(0);
不幸的是,当我看到日志中正在调用该方法时,应用程序实际上并没有像我预期的那样崩溃(进程死亡,所有窗口都消失等)。
在后台服务中使用WindowManager#addView
时,是否有更优雅的方法来处理崩溃?