在崩溃时自动重启应用程序?

问题描述:

在Android上,我使用运行一系列C++测试的NDK运行应用程序。如果有一个测试失败了,这很可能意味着崩溃,我希望应用程序能够重新启动并开始下一次测试。在崩溃时自动重启应用程序?

我希望我可以使用例外但NDK不支持它们。

这可能吗?

+0

我还没有测试过这个,但也许@FlakyTest会覆盖:http://developer.android.com/reference/android/test/FlakyTest.html但是,再次,它可能只适用于失败的测试,不会导致您的应用崩溃的错误。但也许值得一试。 – Matthias 2011-01-25 15:48:40

  1. 为什么你的应用程序必须崩溃?为什么不捕捉任何异常被抛出?即使编译器不会强制您添加try..catch块,RuntimeExceptions仍可能被抛出。
  2. 您也可以使用Thread.setDefaultUncaughtExceptionHandler。请注意,这必须在每个线程中调用。
  3. 如果出于某种原因,上述解决方案不适合您,您可以创建一个后台服务,充当watchdog timer

编辑:检查this link:对于支持C++异常的自定义版本的NDK。我发现它在this thread

+0

我意识到我忘了提及使用NDK进行C++测试。 NDK运行时没有例外,因此我的问题。 – djcouchycouch 2011-01-25 16:28:13