我正在安排一个独特的周期性工作,我猜在某个时候,即使我的应用程序没有运行,甚至在后台也会运行。
我的问题是,当我的应用被完全终止,我的worker被操作系统启动时,我的Application.onCreate
方法会在worker运行之前被调用吗?还是它会完全独立于应用运行?
在我的Application.onCreate
方法中初始化了一些依赖项,这些依赖项是我的工作线程运行所必需的,所以如果我的工作线程可以完全隔离地运行,那么我必须在工作线程本身中设置这些依赖项,尽管我不确定是不是这样。
2条答案
按热度按时间2lpgd9681#
它会运行你的应用程序。不用担心。所有像这样的事件都会运行你的应用程序和onCreate()。它适用于清单广播接收器,警报管理器定时器等。
oyjwcjzk2#
我的问题是,当我的应用被完全终止,我的工作器被操作系统启动时,我的Application.onCreate方法会在我的工作器运行之前被调用吗?还是它会完全独立于应用运行?
会的。
您编写的任何代码都将在其自己的进程中运行,以便操作系统进行管理。Per the documentation:
在创建应用程序/包的进程时,Application类或Application类的子类将在任何其他类之前示例化。
你应该可以在你的Application和Worker类中用一些Log语句来测试这个,只要把你的工作安排在未来30秒,然后杀死你的进程,看看会发生什么。