以编程方式临时禁用自动更新

Ifo*_*for 7 android auto-update

我有一个自行车电脑应用程序,可以在用户骑行时记录数据.我有一个用户报告我没有考虑过的问题.他出去玩了很长时间(100英里以上),但在外出和记录数据时,应用程序通过Google更新了自动更新.不幸的是,这个应用程序在录制过程中终止,用户丢失数据,直到他们发现发生了什么并重新启动应用程序.

理想情况下,我希望能够以编程方式停止在应用程序进行数据记录时发生的自动更新.我所有的研究都表明这是不可能的,但我可能会错过一些东西所以任何人都知道这样做的方法吗?

没有解决方案,我能做的最好的事情是建议用户在Play应用程序中启用仅通过wifi选项进行更新,在这种情况下,这将有所帮助.不幸的是,关于我的应用程序的一个关键点是,它将使用ANT +传感器记录室内会话,因此我有很多人使用wifi激活.

编辑

我设法做了实验,看看我昨晚发生了什么.我有一个应用程序进入后台数据记录,然后将新版本推送到Google Play.不幸的是,当我不得不离开10个小时后,它没有完全自动拾取但是我打开了游戏商店应用程序,它发现更新它没有开始自动更新但我强迫它.下载和安装新版本的行为扼杀了正在进行的工作.在我使用通知转到新版本之前,它已经死了.

War*_*zit 2

正如您自己所说,您无法做到您所要求的。您可以通过每次更新时更改权限来解决这个问题。然后将以常规方式提示用户。

我不确定正在运行的自动更新应用程序的“生命周期”。但我在某处读到,这不是重新安装,而是重新打开导致崩溃的应用程序。如果是这种情况,您可以设置一个标志来指示用户当前正在记录,然后在重新启动时恢复记录。但我们再次需要更多地了解正在运行的活动/应用程序的内部运作并获得自动更新(实际上认为这不会发生)。

编辑

根据您的发现,我想说您必须处理应用程序在 onDestroy 等中关闭的情况,或/并确保您持久保存所有内容。那么您可能需要有 2 个应用程序,其中 1 个应用程序监听另一个应用程序的重新安装,当发生这种情况时,它会再次启动它(这里有一个有趣的讨论)。如果您的目标 api >= 12,那么广播操作ACTION_MY_PACKAGE_REPLACED可能也会感兴趣。