【问题标题】:How to know if the programmatically install/update of my app is successfull如何知道以编程方式安装/更新我的应用程序是否成功
【发布时间】:2015-09-04 15:04:02
【问题描述】:

我目前正在创建一个应用程序,该应用程序可以通过从服务器下载的 .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 在更新同一个应用程序后永远不会调用,可能是因为它是同一个应用程序更新了启动意图的应用程序被杀死。 ?

也许最后一个原因与我没有收到广播事件的原因相同,例如在启动更新的应用中收听 ACTION_PACKAGE_ADDED。

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

【问题讨论】:

  • 同时,您本可以告诉我们通过应用程序本身安装新版本的 apk 存在什么问题。
  • 我没有安装/更新应用程序的问题,它工作正常,但我需要知道从我的应用程序安装我的应用程序的新 apk 是否成功。也许在安装过程中,用户杀死安装或设备空间不足,或其他问题......所以我需要知道安装是否成功,因为我需要调用一个方法installFinish(boolean isOk)
  • 您没有描述问题。在哪里/谁(你想)调用那个方法?哪个应用程序?什么时候?
  • 不清楚。 `我需要在启动要更新的意图的应用程序中调用该方法`。您是在说一个应用程序启动这样的意图来安装另一个自己的 apk 吗?让我们一步一步来处理。
  • 您想在应用程序的哪个实例中调用 installFinish() ?在旧实例或新实例中?意识到旧实例在安装新 apk 之前被杀死。除非用户再次启动它,否则不会有您的应用程序的新实例。你从来没有谈过那个问题。问题!

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


【解决方案1】:

这是我们使用的解决方法: 实现一个虚拟提供程序并覆盖 onUpgrade().onUpgrade 每当数据库升级时都会调用。你需要维护数据库版本和应用程序版本之间的一对一映射。

【讨论】:

  • '每当应用程序升级时都会调用 onUpgrade。'。您不是说“数据库版本更改时”吗?
  • @greenapps 是的,只要数据库升级。如果您维护一对一映射,它将与升级应用程序一样好。
  • 我的应用程序中没有数据库,我只是用当前版本调用了一个 C# 网络服务,它发送了我的应用程序最后一个版本的 apk。
  • I don't have database in my app。我的天,他说你写了三行代码来实现一个虚拟数据库。
猜你喜欢
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
相关资源
最近更新 更多