【发布时间】:2014-01-19 14:37:42
【问题描述】:
我在我的应用中插入了一些代码来检查是否有可用的新版本。
如果有,用户会收到一个对话框,询问他是否要更新。
一切正常,但问题是即使 Play 商店显示当前可用版本是 1.1,并且用户拥有 1.0 版本,它仍然要求“启动”或“卸载”应用程序,并且不显示任何更新按钮。
这是有问题的,因为用户将不断收到更新对话框,并将被重定向到未显示任何更新版本的页面。
这是我的代码:
if (!lastVersion.equals(actualVersion)){
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.xxx.yyy"));
startActivity(intent);
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=com.xxx.yyy")));
}
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
if (force_update){
android.os.Process.killProcess(android.os.Process.myPid());
}
break;
}
}
};
【问题讨论】:
-
如果您返回并再次单击该按钮,是否也是如此?因为我知道市场App中的App页面很多时候是可以缓存的,所以要查看更新版本需要退出重新进入App页面获取新版本?同样出于好奇,您如何检查新版本?您自己的 API 或通过解析/询问市场?
-
@NicklasGnejsEriksson 嘿,感谢您抽出宝贵时间帮助我。因此,即使我关闭所有内容,单击返回并再次访问它,仍然是同样的问题。我已经尝试了所有我能想到的。至于版本检查,我做了一些非常简单的事情。我的服务器上有一个 php 文件,它呈现一个 json 对象,其中包含最后一个版本、一个 force_update 变量、一条消息和我想在不需要更新的情况下管理的其他一些参数。然后我从我的应用程序中检索此对象并将版本字符串与应用程序版本进行比较。如果相等,则什么都不做,否则,显示对话框。
-
如果不是缓存,那么我不确定它实际上是什么。您是否尝试过使用“search?q=pname:yourpackage”进行搜索,然后手动进入 App 页面查看是否有更新?或者,如果您只是在 Play 商店中手动进行全面检查?啊,我明白了,你自己的 API。 :) 对不起,我帮不上什么忙^^ 祝你好运 :)
-
我找到了问题,我会回答我自己的问题:)
标签: android eclipse google-play version updates