我喜欢在“不要保持活动”的情况下测试我的应用程序,以确保一切都能在Android破坏我的东西的最坏情况下运行。今天我注意到这个设置显然可以(并且通常会)导致我的整个应用程序在我启动隐式导航意图后被销毁。这是一个问题,因为原始开发人员在扩展的Application
中放置了一堆重要的后台任务,而不是使用Service
,当应用在后台时,Android更有可能保持活力。< / p>
选中“不要保持活动”,我的整个应用程序似乎在导航活动开始时被杀死。我不再看到后台任务的日志记录,当我返回启动导航的活动时,会使用新的未初始化Application
重新创建。我不能简单地重新初始化它,因为主要问题是当我的应用程序在后台时,任务需要继续运行。
我没有在新任务中明确启动导航:
String encoded = Uri.encode(nextWaypoint);
Intent navigation = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + encoded));
startActivity(navigation);
我的Application
被摧毁的可能性是不可避免的,因为我的活动被摧毁的可能性是什么?
答案 0 :(得分:1)
当没有组件使用启动Application
的过程时,您的Application
将被销毁。因为“不要Activities
&#34;当您离开时,该选项会导致Activity
被删除,并且您没有任何其他组件使用您的流程,您的Application
将被终止。
根据您所描述的内容,您最安全的选择是将您的任务移至Service