在某些情况下,我的应用程序被启动通过调用 一个我Broadcast-Receivers
或Services
(ETC),但我想,以防止用于意图 组件开始。停止意图beeing执行 - 在应用程序子类
为什么:因为我需要做一些以前初始化工作不要跑,在任何 组件应该开始。但是,这项工作可以一个长时间运行的东西, 因此我不能只在主线程上执行它我的应用程序子类内。
我在我的应用程序中继承Application
的子类。因此,我的做法是 以某种方式干预我的应用程序子类的onCreate()
和 的意图,而是启动我的特定服务,该服务运行事先初始化 并重新调用此后故意使用的意图。
你可以想象任何可能做到这一点吗? 谢谢!
Ps .:我有很多组件可能可能启动我的应用程序。我不想将我的条件代码包含在每个组件中。
伤心。我想知道,在其他任何事情开始之前,我应该如何长时间运行迁移或内部“应用程序数据更新”(如sql数据)。恐怕没有其他的可能是继承我的所有组件,并让它们继承初始化检查。 – JacksOnF1re
@ JacksOnF1re:你早点工作。例如,假设您发布的应用更新具有重大架构更改,需要大量时间才能完成。安装更新后立即启动该工作。特别是对于选择自动更新的用户来说,工作可能会在应用程序的其他任何内容被调用之前完成。你不应该需要新的子类,因为你已经有了这些类。您的初始化逻辑可以驻留在单独的实用程序类中,而不是基本组件类。 – CommonsWare