2011-02-16 6 views
1

종료 메시지 또는 예외가 발생했습니다. 이상하게도 에뮬레이터에서는 2.2와 2.3.3에서 잘 돌아갑니다. Nexus 1을 실행할 때만 종료됩니다. 2.2.1SharedPreferences.Editor.apply 힘이 나는 다음과 같은 코드를 사용하고

위의 해결 방법이 있지만 가까운 원인에 관심이 있습니다.

아무도 도와 줄 수 있습니까?

건배, Venatu

+2

강제 종료한다는 것은 로그에 상세한 스택 추적이 있음을 의미한다. 게시 해주세요. – EboMike

답변

4

apply()는 API 레벨 9 (일명, 안드로이드 2.3)에서 추가되었다. Android 2.2에서 사용하지 마십시오. UI를 차단하는 것은 그 문제의 경우가 될 수 있도록하면서

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; 
    } 
} 

은 실행 커밋 ..

if (respondsTo(editor, "apply")) invoke(editor, "apply”); 
else editor.commit(); 

을하고 난 고정 수입으로 두 마법 방법이 있습니다

+0

Doh! 나는 그것이 그렇게 단순 할 것이라고 생각하지 않았다. 답장을 보내 주셔서 감사합니다 – Venatu

0

내가 같이 KODE를 사용하여 간단합니다 큰 데이터를 절약 할 수 있습니다. 나는 커밋을 위해 배경 스레드를 사용했다. (문제가있어 ...)하지만 이제는 많은 사용자가 2.3을 가지고 있으므로 나이를 전환해야한다고 생각한다.

관련 문제