如何知道我的应用程序的编程安装/更新是否成功

时间:2015-09-04 15:04:02

标签: android android-intent android-pendingintent intentfilter android-broadcast

我目前正在创建一个应用程序,由于从服务器下载了.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);

修改

我试过这个https://stackoverflow.com/questions/29175722/how-to-get-onactivityresult-called-from-action-view-intent

但是我认为这对我不起作用有两个原因:

  • 我不知道用户是否按了取消

  • onActivityResult在更新同一个应用程序后永远不会调用,可能是因为它是更新启动意图的应用程序的同一个应用程序是kill。 ?

也许最后一个原因是我没有收到broadcastevent的原因,例如在启动更新的应用中侦听ACTION_PACKAGE_ADDED。

也许我可以在第一次启动应用程序时调用该方法,就像安装成功,因为应用程序已启动。

1 个答案:

答案 0 :(得分:1)

继承我们使用的工作: 实现虚拟提供程序并覆盖onUpgrade()。每当升级数据库时都会调用onUpgrade。 U需要在数据库版本和应用程序版本之间保持一对一的映射。