我正在构建一个旨在持续运行的应用。此外,用户在使用时会锁定应用程序(通过固定功能)。当应用程序暂时未检测到用户交互时,它会自动取消,调用Android梦想服务,并显示各种屏幕保护程序。当用户点击设备时,它会“唤醒”,进入主屏幕并自行复制。
我需要我的应用程序自动更新。但是,鉴于这种情况,我很难这样做。它似乎没有更新,或根据我的一位同事,更新但关闭了应用程序。
应用程序是否有办法在运行时检测,下载和安装更新,然后,如有必要,重启自己?什么是最好的方法?
非常感谢。
答案 0 :(得分:9)
应用程序是否有办法在运行时检测,下载和安装更新
这是由google play store为您处理的。当应用程序升级到新版本时,应用程序将被终止,因此新版本的安装非常顺利,数据也不会损坏。
如有必要,重新启动自己?
如果你想在升级后继续运行(或者更确切地说,重新启动应用程序),是的,你必须做一些额外的事情。
我使用的一种方式是:
放入清单:
<receiver android:name=".receivers.AppUpgraded">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
public class AppUpgraded extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
// your app was just upgraded, restart stuff etc.
}
}
请注意,还有一个action.PACKAGE_REPLACED
会触发任何已升级的应用。您可能只对升级自己的应用感兴趣,因此请使用action.MY_PACKAGE_REPLACED
。