在Android上杀死app时执行方法

时间:2017-06-23 14:41:19

标签: android exception-handling android-lifecycle

我已经构建了一个 Android 应用程序。如果我通过后退按钮定期终止我的应用程序,则执行ws.conditional_formatting.add()。但是当我杀死我的应用程序时(使用最近的应用程序按钮),onDestroy()永远不会执行。我现在在主onDestroy()的{​​{1}}方法中添加了以下内容:

onCreate(Bundle savedInstanceState)

稍后在主Activity课程中,我添加了:

    Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler() {
        @Override
        public void uncaughtException (Thread thread, Throwable e)
        {
            handleUncaughtException (thread, e);
        }
    });

不幸的是,当我终止我的应用程序时,Activity方法永远不会被调用(当我通过后退按钮定期终止我的应用程序时,它也不会被调用)。

有什么问题?

我正在使用 Android 5.1。

1 个答案:

答案 0 :(得分:0)

  

不幸的是,当我终止我的应用程序时,永远不会调用handleUncaughtException()方法(当我通过后退按钮定期终止我的应用程序时,它也不会被调用)。

Catching an exception(在 dalvik 中)并且杀死应用( Linux )进程本身就是不同的东西。除非应用程序抛出未捕获的异常,否则在这种情况下不会调用handleUncaughtException()方法。

  

在Android上杀死应用时执行方法

从最近删除应用时,只保证Activity onPause()被调用Service。但是你可能会被告知"通过def key = String.format('${#DataSource#%s}',context.parent.getLabel()) 的回调。可以找到一些额外信息herehere