Java SharedReferences.Editor.apply force关闭

Java SharedReferences.Editor.apply force关闭,java,android,android-emulator,nexus-one,Java,Android,Android Emulator,Nexus One,我正在使用以下代码: SharedPreferences.Editor edit = mPrefs.edit(); edit.putString("UUID", UUID.randomUUID().toString()); edit.commit(); //edit.apply(); 这很好,但是如果我注释掉提交并取消注释apply,那么appforce将在我的设备上关闭,而不会出现错误消息或引发异常。奇怪的是,它在emulator中运行良好,在2.2和2.3.3下。它只在运行2.2.1的Ne

我正在使用以下代码:

SharedPreferences.Editor edit = mPrefs.edit();
edit.putString("UUID", UUID.randomUUID().toString());
edit.commit();
//edit.apply();
这很好,但是如果我注释掉提交并取消注释apply,那么appforce将在我的设备上关闭,而不会出现错误消息或引发异常。奇怪的是,它在emulator中运行良好,在2.2和2.3.3下。它只在运行2.2.1的Nexus one上关闭

我有上面的解决办法,但对关闭的原因感兴趣

有人能帮忙吗


干杯,Ventau

应用被添加到API level 9 a.k.a.和Android 2.3中。不要试图在Android 2.2上使用它。

应用程序是在API level 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版本,所以我认为较老的用户应该切换…

很简单,我使用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版本,所以我认为较老的用户应该切换…

任何强制关闭都意味着日志中有详细的堆栈跟踪。请发布。任何强制关闭都意味着您在日志中有详细的堆栈跟踪。请把那个贴出来。Doh!我没想到会这么简单。谢谢你的回复哦!我没想到会这么简单。谢谢你的回复