2012-09-29 3 views
1

asytask에서 나에게 주요 활동을 보내고 싶습니다. 메시지 개체 (처리기)를 사용하여이 작업을 수행하려고합니다. 내 주요 활동 은 내가asytask에서 activite로 메시지를 전달하는 방법

new splash(first.this,mHandler).execute(); 

을 asytask에 전달이

final Handler mHandler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     msg.toString(); 
    } 

}; 

개체 및이 방법

protected void onPostExecute(String result) { 
    Message msg = new Message(); 
    Bundle bundle = new Bundle(); 
    bundle.putString("ActivityName",this.newActivity); 
    msg.setData(bundle); 
    mHandler.sendMessage(msg); 
    Dialog.dismiss(); 

로그 캣의 활동에 메시지를 보내 asytask을 만들어

09-29 11:55:41.631: E/AndroidRuntime(473): FATAL EXCEPTION: main 
09-29 11:55:41.631: E/AndroidRuntime(473): java.lang.NullPointerException 
09-29 11:55:41.631: E/AndroidRuntime(473): at tools.splash.onPostExecute(splash.java:109) 
09-29 11:55:41.631: E/AndroidRuntime(473): at tools.splash.onPostExecute(splash.java:1) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask.finish(AsyncTask.java:417) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.os.Looper.loop(Looper.java:123) 
09-29 11:55:41.631: E/AndroidRuntime(473): at android.app.ActivityThread.main(ActivityThread.java:3683) 
09-29 11:55:41.631: E/AndroidRuntime(473): at java.lang.reflect.Method.invokeNative(Native Method) 
09-29 11:55:41.631: E/AndroidRuntime(473): at java.lang.reflect.Method.invoke(Method.java:507) 
09-29 11:55:41.631: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
09-29 11:55:41.631: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
09-29 11:55:41.631: E/AndroidRuntime(473): at dalvik.system.NativeStart.main(Native Method) 
+0

이 줄의 위치는 다음과 같습니다.'splash.java : 109'? – 10s

+0

이 줄 108 Dialog.dismiss(); –

답변

2

위의 의견에 따르면 응용 프로그램은 Dialog.dismiss()에서 충돌합니다. Dialog 변수가 올바르게 선언되고 시작 되었습니까? 너 어디 론가 널로 만들고있어? (I 오른쪽 Dialog 변수가 아닌 클래스 겠지?)

편집 :

OK,하지만 문제는 여전히 동일합니다. mHandler 개체가 올바르게 신고 된 것으로 확인 되었습니까? null이 아닙니다.

AsyncTask의 매개 변수로 전달 중입니다. mHandler 코드를 어디에 게시하고 "어딘가에"저장할 수 있습니까?

AsyncTaskHandler과 같은 범위입니까?

+0

아니요 문제가있는 줄은 mHandler.sendMessage (msg)입니다. 내 도움이되면 내 주요 게시물을 upadated 내 처리기로 뭔가 잘못 생각 –

+0

대답을 업데이 트되었습니다. – 10s

+0

업데이트 : 고맙습니다. 생성자에서 객체를 가져 오는 것을 잊었습니다. –

관련 문제