2013-10-11 1 views
-1

사용자 정의 알림 알리미를 작성하려고하는데 코드에서이 예외 이후에 오류가 발생했습니다. 내가 문제가 있습니다사용자 정의 알림 : java.lang.RuntimeException : .. 알림 적용시

10-11 11:13:01.445 2816 4383 E JavaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.) 
10-11 11:13:01.445 2816 4383 E JavaBinder: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
10-11 11:13:01.445 2816 4383 E JavaBinder: at android.os.Handler.<init>(Handler.java:197) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at android.os.Handler.<init>(Handler.java:111) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at com.android.server.NotificationManagerService$9.<init>(NotificationManagerService.java:2800) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at com.android.server.NotificationManagerService.sendMsg(NotificationManagerService.java:2800) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at com.android.server.NotificationManagerService.updateSoundLocked(NotificationManagerService.java:2787) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at com.android.server.NotificationManagerService.enqueueNotificationInternal(NotificationManagerService.java:2055) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at com.android.server.NotificationManagerService.enqueueNotificationWithTag(NotificationManagerService.java:1911) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at android.app.INotificationManager$Stub.onTransact(INotificationManager.java:103) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at android.os.Binder.execTransact(Binder.java:388) 
10-11 11:13:01.445 2816 4383 E JavaBinder: at dalvik.system.NativeStart.run(Native Method) 
10-11 11:13:01.445 8979 8979 D AndroidRuntime: Shutting down VM 
10-11 11:13:01.445 8979 8979 W dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41786700) 
10-11 11:13:01.445 2357 2631 E AudioResampler: Unsupported sample format, 1 bits, 2 channels 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: FATAL EXCEPTION: main 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: java.lang.RuntimeException: bad array lengths 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.Parcel.readIntArray(Parcel.java:789) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:339) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:139) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:112) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at com.android.systemui.screenshot.SaveImageInBackgroundTask.onPostExecute(GlobalScreenshot.java:380) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at com.android.systemui.screenshot.SaveImageInBackgroundTask.onPostExecute(GlobalScreenshot.java:126) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:631) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.AsyncTask.access$600(AsyncTask.java:177) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.os.Looper.loop(Looper.java:137) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5419) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:525) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
10-11 11:13:01.445 8979 8979 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method) 

내 코드는 다음과 같습니다

private void sendMsg(boolean delayed) { 
    if(mNotificationSoundHandler == null) { 
     mNotificationSoundHandler = new Handler() { //may be some prob with this 

      public void handleMessage(Message msg) { 
       super.handleMessage(msg); 
       Log.d(TAG, " !!!Handle Message !!!"); 
       updateSoundLocked(); 
      } 

    }; 
} 
+0

불편을 끼쳐 드려서 logCat – Razgriz

+0

의 형식을 수정했습니다. – beginner

답변

0

당신은 UI 스레드 밖에서 UI를 업데이트 할 수 없습니다. 이 같은 것을 수행해야합니다 심지어

getActivity().runOnUiThread(new Runnable() { 
    updateSoundLocked(); 
}); 

또는를 :

private void sendMsg(boolean delayed) { 
    if(mNotificationSoundHandler == null) { 
     mNotificationSoundHandler = new Handler(Looper.getMainLooper()) { 

      public void handleMessage(Message msg) { 
       super.handleMessage(msg); 
       Log.d(TAG, " !!!Handle Message !!!"); 
       updateSoundLocked(); 
      } 
     }; 
    } 
} 

, 자세한 내용은 official documentation를 참조하십시오.

+0

고맙습니다 .. 나중에 해결할 솔루션이 ... .. 제게 지옥이 없어졌습니다. 5 일이 지난 지금 감사합니다. 많이 ... – beginner

+0

듣기 좋다. 승인 된대로 답을 확인하는 것을 잊지 마십시오. 감사. – Trein

+0

물론, .... 그 일을 .. 지연을 위해 ... – beginner

관련 문제