我有两个项目/包是同一个应用程序的一部分。应用程序的主要项目几乎可以完成应用程序中的所有事情。但是,我们使用了第二个项目来管理应用程序的更新。我们使用的是从sqlite3的数据库更新和应用在主应用程序共享偏好使用Android共享首选项更新
editor.putString("string", sString).apply();
我们还可以使用下面的逻辑来看看它的新版本,如果是重新启动自动更新包
if (!sCurrentVersion.equals(ver)) {
Intent intent1 = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
intent1 = manager.getLaunchIntentForPackage("com.pack.autoupdate");
intent1.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent1);
}
然后在autoupdate包中,我们只使用getSharedPreferences()。我们在共享首选项中需要的值是autoupdate包需要检查的更新URL。
我们的问题是,我们更新了数据库中的这些网址,但是我们仍然在自动更新检查中使用旧网址的一些设备。我是否需要确认并重新启动autoupdate,或者是否存在我在使用sharedpreferences时出错的问题?
您是否尝试过使用一个共享偏好监听.commit()和。适用()之间的区别
的更多信息? http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html – logray
感谢logray,这是什么不同,然后使用 'getSharedPreferences(“SharedPrefs”,Context.MODE_MULTI_PROCESS);' – k1komans
getSharedPreferences一次性工作。添加一个监听器并随时更改一个首选项(例如在一个类中),您可以处理任何您喜欢的内容,例如影响另一个应用程序/类。这样你就不必手动更新你的首选项,只需让听众来处理它。从文档中,共享首选项侦听器在共享首选项被更改,添加或删除时被调用,即使首选项设置为其现有值,也可以调用此参数。“ – logray