只有在直接从Google Play(或自动)更新应用程序时,是否有办法在代码中执行某些操作?
我的任务是在安装后或每次更新后向用户询问隐私警察的一些条款
答案 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中。每次用户打开应用程序时,都会获取版本代码并与存储的数据进行比较。