我目前正在创建一个应用程序,由于从服务器下载了.apk,因此可以从自己的代码更新。
我想知道应用的更新/安装是否成功。因为当前更新工作正常但我不知道安装/更新是否正常,如果安装遇到问题或者用户取消安装或其他事情。所以我需要一个回调“installFinish(boolean isOk)”。
我搜索了一天,但我找不到解决问题的方法。
我读了很多东西,特别是:
How to find out when an installation is completed
或者这个:
Android - Install Application programmatically with result
但不是我的意思。 这是我更新我的应用程序的代码
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file.getAbsoluteFile()), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity) context).startActivity(intent);
修改
但是我认为这对我不起作用有两个原因:
我不知道用户是否按了取消
onActivityResult在更新同一个应用程序后永远不会调用,可能是因为它是更新启动意图的应用程序的同一个应用程序是kill。 ?
也许最后一个原因是我没有收到broadcastevent的原因,例如在启动更新的应用中侦听ACTION_PACKAGE_ADDED。
也许我可以在第一次启动应用程序时调用该方法,就像安装成功,因为应用程序已启动。
答案 0 :(得分:1)
继承我们使用的工作: 实现虚拟提供程序并覆盖onUpgrade()。每当升级数据库时都会调用onUpgrade。 U需要在数据库版本和应用程序版本之间保持一对一的映射。