마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

핸들러를 통한 메인엑티비티에서 이미지변경.

0 추천
public  Handler mhandler = new Handler(){

    @Override
    public void handleMessage(Message msg){
        super.handleMessage(msg);
        Log.i("하","1");
        switch (msg.what){

            //똥
            case 1 :
                Log.i("하", "2");
                pooImage.setImageDrawable(drawable);
                Log.i("하", "3");
                break;

        }

    }
};
메인스레드에는 위에 같이 핸들러는 선언했습니다.
 
다른 스레드 클레스 파일에 다음과 같이 호출을 했습니다.
Message msg = mhandler.obtainMessage();
msg.what = 1;
msg.obj = "d";
mhandler.sendMessage(msg);
 
이미지 변경하는 부분에서 앱이 종료가 되더군요... 왜 종료가되는지를 도무지 모르겠습니다.. 어떠한 이유로 보이는지 조언 부탁드립니다 ㅠㅠ
 
11-09 18:47:21.212  21105-21105/? D/AndroidRuntime﹕ Shutting down VM
11-09 18:47:21.212  21105-21105/? W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x417c2da0)
11-09 18:47:21.212  21105-21105/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.sin.damagoci, PID: 21105
    java.lang.NullPointerException
            at com.example.sin.damagoci.MainActivity$1.handleMessage(MainActivity.java:50)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5335)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)
bedz (700 포인트) 님이 2015년 11월 9일 질문
bedz님이 2015년 11월 9일 수정

2개의 답변

0 추천
에러 로그를 찍어주셔야..
sugars90 (550 포인트) 님이 2015년 11월 9일 답변
0 추천
NullPointerException 이라고 쓰여 있네요..

poolImage가 Imageview 인 거 같은데.. 이게 제대로 선언되어 있지 않았을 확률이 높긴한데.. MainActivity 50번째 줄이 무엇인지가 중요하겠네요..

음... 근데... UI 갱신을 메인쓰레드 말고 다른 쓰레드에서 해도 될런지는 모르겠네요
libre2k (7,420 포인트) 님이 2015년 11월 9일 답변
...