我的应用程序包含一些小部件,在新版本的应用程序中,它们需要一些其他数据。我在MainApplication.java
中得到了这些数据,但是我担心用户更新时,如果MainApplication
没有手动打开应用程序,它们将不会自动运行。但是,由于小部件将已经在主屏幕上,并且由于该数据将不可用,因此小部件将崩溃。
我担心的现实是现实的还是MainApplication
总是会首先运行(也在调用AppWidgetProvider.onUpdate()
之前运行),即使在应用程序自动更新并且用户完全不使用它之后?
答案 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()