Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 - Fatal编程技术网

Android 仅当我的应用程序已更新但未在新安装的应用程序中显示初始对话框

Android 仅当我的应用程序已更新但未在新安装的应用程序中显示初始对话框,android,Android,我只想在更新我的应用程序的用户初始化应用程序时显示对话框。我不希望这样的对话框被显示,如果一个用户已经作出了我的应用程序的新安装 如何做到这一点 我知道存在一个BroadcastReceiver,它可以侦听ACTION_PACKAGE_替换的意图,但它不符合我的需要 我确信有一种不同的方法来实现这一点当您的活动开始时,请在共享首选项中检查应用程序的版本。如果不存在,则该应用程序是新安装的-不显示对话框,只需将当前版本写入共享首选项即可。如果确实存在,请与当前版本进行比较。如果相同,则忽略并继续。

我只想在更新我的应用程序的用户初始化应用程序时显示对话框。我不希望这样的对话框被显示,如果一个用户已经作出了我的应用程序的新安装

如何做到这一点

我知道存在一个BroadcastReceiver,它可以侦听ACTION_PACKAGE_替换的意图,但它不符合我的需要


我确信有一种不同的方法来实现这一点

当您的活动开始时,请在共享首选项中检查应用程序的版本。如果不存在,则该应用程序是新安装的-不显示对话框,只需将当前版本写入共享首选项即可。如果确实存在,请与当前版本进行比较。如果相同,则忽略并继续。如果不相同,则显示对话框并将新版本号写入共享首选项,以便不再显示。

app\u版本将不存在于我的更新中。。。所以我不知道为什么会这样?因为更新的应用不会覆盖现有的共享首选项。什么?我不明白你的意思。。。。与新安装一样,我更新的应用程序将首次写入共享首选项值,因为该共享首选项值在以前的版本中不存在,因此我无法看到差异。如果您有一个应用程序并对其进行了更新,则不会删除旧的共享首选项。因此,如果您安装了旧版本1,您会看到app_version=1。当升级到2时,您将检查app_version的值并查看1。从1开始2,您将显示对话框。我当前安装的应用程序没有任何应用程序版本值存储在共享首选项中!!!因此,所有这些都将被视为使用您的方法进行的新安装。你现在明白了吗?