【问题标题】:Android: How to execute some code only when I update the app on market?Android:如何仅在我更新市场上的应用程序时执行一些代码?
【发布时间】:2013-01-27 08:46:49
【问题描述】:

我需要知道是否有办法仅在用户从市场(google play)安装我的新更新时才第一次在我的应用中运行一段代码?

每次上传应用的新版本时,我都需要运行一次代码?

感谢阅读。

【问题讨论】:

  • 有可能,但“如何”取决于您的确切需求......请详细说明......“万无一失/防黑客......”应该是怎样的?如果同一用户执行代码两次是否可以,因为他们从备份中恢复了手机(使用旧版本)并再次安装了更新?
  • 只有当我用新版本@Yahia更新应用程序
  • 抱歉,这不是我提出的问题的答案,因此仍然不清楚!

标签: android versioning google-play


【解决方案1】:

使用 SharedPreferences 存储您的应用的最新版本和当前版本,并在每次版本更改时运行一次代码。比如:

    public static final String LAST_VERSION = "LAST_VERSION";
    public static final int VERSION_CODE = 4; // Same as the version code in your manifest.

    SharedPreferences prefs = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();

    mContext = this;

    int last = prefs.getInt(LAST_VERSION, 0);
    if (last < VERSION_CODE) {
        //Your code
        editor.putInt(LAST_VERSION, VERSION_CODE);
        editor.commit();
    }

【讨论】:

  • 我认为这很危险。因为如果用户重置手机或清除缓存,则共享首选项将被清除。结果,您将执行相同的代码
  • 大部分代码在每次更新时执行一次,用于预先填充共享偏好和类似的东西,无论如何在手机或应用程序重置时都需要重新填充。
  • 这个答案是错误的,你应该使用 BuildConfig.VERSION_CODE 因为它比使用必须手动更新以完全匹配 BuildConfig.VERSION_CODE 的常量更简洁
猜你喜欢
  • 2011-08-07
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多