SharedPreferences.Editor.apply强制关闭

我使用以下代码:
SharedPreferences.Editor edit = mPrefs.edit();
edit.putString("UUID", UUID.randomUUID().toString());
edit.commit();
//edit.apply();
这工作正常,但如果我注释掉提交并取消注释应用,则应用程序强制在我的设备上关闭,没有错误消息或抛出异常。奇怪的是,这在模拟器中运行良好,在2.2和2.3.3之下。它仅在运行2.2.1的Nexus上关闭 我有上面的解决方法,但我对结果的原因感兴趣。 有人可以帮忙吗? 干杯,维纳图     
已邀请:
apply()
在API级别9(a.k.a.,Android 2.3)中添加。不要试图在Android 2.2上使用它。     
这很简单,我使用这样的kode:
if (respondsTo(editor, "apply")) invoke(editor, "apply”);
else editor.commit();
然后我有两个神奇的方法作为静态导入..
public static boolean respondsTo(Object object, String methodName) {
    try {
        object.getClass().getMethod(methodName, (Class<?>[]) null);
        return Yes;
    } catch (NoSuchMethodException e) {
        return No;
    }
}

public static Object invoke(Object object, String methodName) {
    try {
        return object.getClass().getMethod(methodName, (Class<?>[]) null).invoke(object);
    } catch (Exception e) {
        return INVOKE_FAILED;
    }
}
在阻止UI时运行提交,因此在保存大数据时可能会出现问题。我使用后台线程进行提交(这是有问题的......)但是现在很多用户都有2.3所以我认为旧的应该切换...     

要回复问题请先登录注册