即使用户未打开应用程序,MainApplication也会在更新应用程序后始终运行吗?

时间:2018-09-19 06:35:00

标签: android android-widget android-lifecycle

我的应用程序包含一些小部件,在新版本的应用程序中,它们需要一些其他数据。我在MainApplication.java中得到了这些数据,但是我担心用户更新时,如果MainApplication没有手动打开应用程序,它们将不会自动运行。但是,由于小部件将已经在主屏幕上,并且由于该数据将不可用,因此小部件将崩溃。

我担心的现实是现实的还是MainApplication总是会首先运行(也在调用AppWidgetProvider.onUpdate()之前运行),即使在应用程序自动更新并且用户完全不使用它之后?

1 个答案:

答案 0 :(得分:1)

启动应用程序时,将首先调用<div class="box"> <ul> <li><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> <li ><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> <li><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> <li><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> <li><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> <li><span class="line"></span><img src="http://t2.gstatic.com/images?q=tbn:ANd9GcSZ3KCafAVUhanaeaAsG0Q8lzdKKMOo7TP3H1W4TcMEcpVqtKTPVA&t=1" /></li> </ul> </div>实现的构造函数,然后立即调用Application方法。我假设这就是您说“ Application::onCreate()始终优先运行?”时要问的问题。看一下文档对MainApplication(摘自here)的看法:

  

在应用启动时,任何活动,服务之前调用,   或已创建接收方对象(不包括内容提供者)。

此外,在您的应用更新时不会调用此方法,据我所知,在您的应用完成更新时不会调用此方法。

另一方面,在重新安装应用程序后调用Application::onCreate()方法。升级小部件的代码应放在其中,以便在您的应用升级后执行。

AppWidgetProvider.onUpdate()