如何找出该应用程序已更新

时间:2016-07-25 10:05:36

标签: java android

只有在直接从Google Play(或自动)更新应用程序时,是否有办法在代码中执行某些操作?

我的任务是在安装后或每次更新后向用户询问隐私警察的一些条款

4 个答案:

答案 0 :(得分:3)

您可以使用android.intent.action.PACKAGE_REPLACED接收器来检测应用更新的时间。 据医生说:

  

广播行动:已经有一个新版本的应用程序包   安装,替换以前的现有版本   安装。数据包含包的名称。

<强> AndroidMenifest.xml: 使用android.intent.action.PACKAGE_REPLACED操作注册接收方。

<receiver android:name=".OnUpgradeReceiver">
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_REPLACED" />
    <data android:scheme="package" android:path="your.app.package" />
  </intent-filter>
</receive>

<强> AppUpdateReceiver.java: 创建将在您的应用更新时触发的广播接收器。检查您的版本代码并执行特定操作。

public class AppUpdateReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {

        switch (BuildConfig.VERSION_CODE){
            case 1:
                //DO something if the version code is 1.
                break;
            case 2:
                //DO something if the version code is 2.
                break;
            ...
            ...
        }
    }
}

答案 1 :(得分:1)

只需检查BuildConfig.VERSION_CODE是否已更改。 为此,请在SharedPreferences中保存版本代码。 Application#onCreate()可能是一个很好的观点。

答案 2 :(得分:0)

您可以简单地更新代码(在启动时向用户显示策略)以及用户下次应该启动应用程序的时间。也许保留一个偏好值,以确保它只发生一次。

或者,您也可以在每次启动时阅读当前版本代码,并将其作为首选项存储,一旦更新,您可以显示策略并更新存储的值。

答案 3 :(得分:0)

BuildConfig.VERSION_CODE存储在sharedpreference中。每次用户打开应用程序时,都会获取版本代码并与存储的数据进行比较。