Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何在市场上更新应用程序时才执行一些代码?_Android_Versioning_Google Play - Fatal编程技术网

Android:如何在市场上更新应用程序时才执行一些代码?

Android:如何在市场上更新应用程序时才执行一些代码?,android,versioning,google-play,Android,Versioning,Google Play,我需要知道,当用户第一次从market(google play)安装我的新更新时,是否有办法在我的应用程序中运行一段代码 每次上传新版本的应用程序时,我都需要运行一次代码 感谢阅读。使用SharedReferences存储应用程序的最新版本和当前版本,并在每次版本更改时运行代码一次。比如: public static final String LAST_VERSION = "LAST_VERSION"; public static final int VERSION_CODE =

我需要知道,当用户第一次从market(google play)安装我的新更新时,是否有办法在我的应用程序中运行一段代码

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


感谢阅读。

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

    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();
    }
公共静态最终字符串LAST\u VERSION=“LAST\u VERSION”;
公共静态最终int版本\u代码=4;//与清单中的版本代码相同。
SharedReferences prefs=GetSharedReferences(“MyPrefs”,Context.MODE\u PRIVATE);
SharedReferences.Editor=prefs.edit();
mContext=这个;
int last=prefs.getInt(最后一个版本,0);
if(最后一个<版本\代码){
//你的代码
编辑器.putInt(最新版本,版本代码);
commit();
}

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

    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();
    }
公共静态最终字符串LAST\u VERSION=“LAST\u VERSION”;
公共静态最终int版本\u代码=4;//与清单中的版本代码相同。
SharedReferences prefs=GetSharedReferences(“MyPrefs”,Context.MODE\u PRIVATE);
SharedReferences.Editor=prefs.edit();
mContext=这个;
int last=prefs.getInt(最后一个版本,0);
if(最后一个<版本\代码){
//你的代码
编辑器.putInt(最新版本,版本代码);
commit();
}

尽管“如何”取决于您的具体需求,但这是可能的。。。请详细说明。。。这应该是“万无一失/黑客防范…”吗?如果同一用户执行两次代码,因为他们从备份中恢复了他们的手机(使用旧版本)并第二次安装了更新,是否可以?仅当我使用新版本@yahiaorry更新应用程序时,但这并不是我所问问题的答案,因此仍然不清楚!这是可能的,尽管“如何”取决于你的确切需求。。。请详细说明。。。这应该是“万无一失/黑客防范…”吗?如果同一用户执行两次代码,因为他们从备份中恢复了他们的手机(使用旧版本)并第二次安装了更新,是否可以?仅当我使用新版本@yahiaorry更新应用程序时,但这并不是我所问问题的答案,因此仍然不清楚!我认为这很危险。因为如果用户重置手机或清除cach,则会清除shared pref。因此,您将执行相同的代码大多数情况下,每次更新执行一次的代码用于预填充共享首选项和类似的内容,当手机或应用程序被重置时,这些代码需要重新填充。这个答案是错误的,相反,您应该使用BuildConfig.VERSION\u代码,因为这是一种比使用必须手动更新才能与BuildConfig.VERSION\u代码完全匹配的常量更干净的方法。我认为这是危险的。因为如果用户重置手机或清除cach,则会清除shared pref。因此,您将执行相同的代码大多数情况下,每次更新执行一次的代码用于预填充共享首选项和类似的内容,当手机或应用程序被重置时,这些代码需要重新填充。这个答案是错误的,相反,您应该使用BuildConfig.VERSION\u代码,因为这是一种比使用常量更干净的方法,您必须手动更新该常量才能完全匹配BuildConfig.VERSION\u代码