从Application类中检测启动的原因

时间:2013-11-28 12:53:18

标签: android-intent android

我有一个应用程序实现,我在后台执行一些繁重的任务,这在服务中可能更好,但这对于这个问题无关紧要。

但是我遇到的问题是我需要知道应用程序启动的原因。就像通过正常的意图(意图也很有趣,但这是可选的)或者仅为备份或恢复操作指定应用程序。在最后一种情况下,我可以省略正常开始所需的许多事情。

如何检测应用程序实施的启动原因(意图与备份/恢复)?

1 个答案:

答案 0 :(得分:1)

  

但是我遇到的问题是我需要知道应用程序启动的原因

这是不可能的,对不起。无论启动什么,都可以告诉 Application它为什么被启动,但Application没有很好的方法可以独立地确定它,而不是任何其他单身。

  

我有一个应用程序实现,我在后台执行一些繁重的任务,这在服务中可能更好,但这对于这个问题无关紧要。

实际上,恕我直言,确实如此。 Application对象是在每个进程中创建的,就在您ContentProvider之后(如果有的话)之后。我觉得令人不安的是,你会开始做“一些繁重的任务”只是因为流程开始,而流程正在启动。在许多情况下,这对你的用户体验来说是一个非常重要的时刻,并且在那个时刻占用大量的CPU时间并不是一个好主意。

另一方面,通过服务完成这项工作可以让您灵活地进行计时。它还可以作为执行这些“繁重任务”的操作系统的标记,没有它,Android可以在不再处于前台时随意终止您的进程。