【发布时间】:2014-09-09 23:17:37
【问题描述】:
我喜欢在测试我的应用时检查“不保留活动”,以确保在 Android 破坏我的东西的最坏情况下一切正常。今天我注意到这个设置显然可以(并且通常会)在我启动隐式导航意图后导致我的整个应用程序被破坏。这是一个问题,因为最初的开发者将一堆重要的后台任务放在了扩展的Application 中,而不是使用Service,当应用在后台时,Android 更有可能保持活动状态。
选中“不保留活动”后,当导航活动开始时,我的整个应用程序似乎都被终止了。我不再看到后台任务的日志记录,当我返回启动导航的活动时,它会用一个新的、未初始化的Application 重新创建。我不能简单地重新初始化它,因为主要问题是当我的应用程序在后台时任务需要继续运行。
我没有明确地在新任务中开始导航:
String encoded = Uri.encode(nextWaypoint);
Intent navigation = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + encoded));
startActivity(navigation);
我的Application被破坏的可能性和我的活动被破坏的可能性一样不可避免吗?
【问题讨论】: