android - 当应用程序从商店更新或首次安装在 Android 中时,如何调用特定函数?
问题描述
我有一个具有登录功能和自动登录的应用程序,在登录屏幕之前,会显示一个启动屏幕活动。在启动画面活动中,我想检查用户是否刚刚将应用程序从 Google play 更新到更新版本,如果是,则始终向他显示登录屏幕。所以我的问题是,如何检查当前版本的应用程序是否与上一个版本不同? 我尝试了在本主题中找到的解决方案: 检测新安装或更新版本(Android 应用)
但是在这个函数中
public static boolean isInstallFromUpdate(Context context) {
try {
long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime;
long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
return firstInstallTime != lastUpdateTime;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return false;
}
}
此行始终为真:firstInstallTime != lastUpdateTime; ,但是在更新之后,如果我关闭应用程序然后重新打开它,则此行应该是错误的。如果您有任何建议或需要更多详细信息,请告诉我!谢谢
解决方案
我认为一个简单的解决方案是,如果您有一个用于数据调用的移动应用程序管理面板,那么您必须将最新版本详细信息以及这些与数据相关的 API 调用存储到您的应用程序中,以便轻松检测您是否必须在管理面板中更改版本然后显示更新应用程序并重定向到播放商店的对话框...
这是我个人的看法,因为我用过这种方法......
推荐阅读
- c# - aspnet-sessionId 不适用于 Asp.Net Core
- symfony - Html2Pdf + Symfony + Docker:无法获取图像的大小
- python - 如何使 pd.Dataframe 列分配更快?
- forms - 未调用控制器方法
- c++ - 开发 C++ 什么是“节点 *head=NULL;” 意思是;
- java - JDBC SQL Exception vs Hibernate Exception(JDBC Exception)
- r - 组内条件语句
- objective-c - 未找到模块“KissXML”
- c++ - 启用 C++11 时如何修复“错误数量的模板参数”?
- python - 如何将 unicode 打印到终端和文件重定向