在我的 android 应用程序中,用户必须通过同意提供其电子邮件 ID 的条款和条件进行注册。如果用户将应用程序升级到下一个版本,我不应该得到协议页面或电子邮件注册窗口。我正在使用全局变量来控制它,但是如果用户将应用程序升级到更新版本,全局变量会被重置,因此用户会再次获得协议页面和注册窗口。那么我该怎么做呢?提前感谢您的帮助。
问问题
158 次
3 回答
4
您有两种方法可以在本地媒体上存储数据。
Shared Preference
SQLite Database
我什么时候应该使用共享偏好?
如果您的存储变量数量不多并且应该是原始值,那么您可以使用Shared Preference
.
有关示例代码,请参阅此。
或者
我什么时候应该使用 SQLite 数据库?
如果您必须存储变量的数量并且这些变量不是原始的,并且您需要长时间使用该数据,那么您应该使用SQLite Database
.
有关示例代码,请参阅此。
现在它的Depends on you as per your requirement.
于 2012-11-07T06:02:16.877 回答
3
您可以使用SharedPreferences
class VersionInfo {
private VersionInfo() {}
private static final String PREF_VERCODE = "VERCODE";
public static final VersionInfo INSTANCE = new VersionInfo();
void setVersionCode(Context ctx, int ver) {
PreferenceManager.getDefaultSharedPreferences(ctx).edit().putInt(PREF_VERCODE, ver).commit();
}
int getVersionInfo(Context ctx) {
PreferenceManager.getDefaultSharedPreferences(ctx).getInt(PREF_VERCODE, 1);
}
}
于 2012-11-07T05:55:08.930 回答
1
我使用这段代码在我的应用程序中显示ChangeLog以检测版本是否已更改并相应地显示ChangeLog。相同的逻辑可用于显示或不显示协议,视情况而定。
这些是我的全球宣言:
// FOR STORING VERSION CODE IN SHAREDPREFERENCES
private static final String PRIVATE_PREF = "my_app_name";
private static final String VERSION_KEY = "version_number";
try {
// GET THE PREFERENCE SET FOR THE CHANGELOG
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
final boolean showChanges = prefs.getBoolean("displayChangelog", false);
PackageInfo pkgInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
// SET THE CURRENT VERSION IN SHAREDPREFERENCES
SharedPreferences sharedPrefs = getSharedPreferences(PRIVATE_PREF, Context.MODE_PRIVATE);
// SAVED VERSION CODE
int savedVersionCode = sharedPrefs.getInt(VERSION_KEY, 0);String.valueOf(savedVersionCode));
// GET NEW VERSION CODE
int currentVersionCode = pkgInfo.versionCode;String.valueOf(currentVersionCode));
Editor editor = sharedPrefs.edit();
editor.putInt(VERSION_KEY, currentVersionCode);
editor.commit();
if (showChanges == false) {
/***** DISPLAY THE CHANGELOG *****/
// DISPLAY DIALOG WHEN THE APPLICATION IS INSTALLED FOR THE FIRST TIME
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("displayChangelog", true);
editor.commit();
} else if (showChanges == true && currentVersionCode > savedVersionCode) {
/***** DISPLAY THE CHANGELOG AFTER AN UPGRADE *****/
// DISPLAY DIALOG CHANGELOG AFTER AN UPGRADE
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("displayChangelog", true);
editor.commit();
}
} catch (Exception e) {
e.printStackTrace();
}
编辑:与此代码一起,我还使用Preferences
XML 文件来提供再次查看ChangeLog的能力,并存储用户首选项的状态以在下次运行时显示ChangeLog 。为此的 XML:
<PreferenceCategory
android:key="changeLogOptions"
android:title="Changelog Options" >
<Preference
android:key="changeLog"
android:summary="See what has changed in the current version"
android:title="What\'s New" >
</Preference>
<CheckBoxPreference
android:defaultValue="false"
android:key="displayChangelog"
android:summary="@string/settings_changelog"
android:title="Hide The Changelog" >
</CheckBoxPreference>
</PreferenceCategory>
于 2012-11-07T06:09:47.433 回答