2017-05-10 17 views
0

runnable 내에서 UI 스레드를 업데이트하려고합니다. 그것은 backbutton을 밀어서 메서드를 끼워 넣기 전까지는 잘 동작합니다. 그런 일이 발생하면 NPE에서 충돌합니다. 뒤로 버튼을 누르면이 스레드가 업데이트되지 않도록하는 방법이 필요합니다. 감사!ArrayAdapter를 백그라운드 스레드에서 설정하는 동안 onBackPressed를 사용합니다.

    view.post (uiRun = new Runnable() { 
         public void run() { 
           /* UI update */ 

           areasAdapter2 = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, CL); 
           areasAdapter2.setDropDownViewResource(android.R.layout.simple_list_item_1); 
           mContactLog.setAdapter(areasAdapter2); 
         } 
        }); 

05-10 18 : 26 : 00.610 13511-13511/com.example.bryan.customer84 E /의 uncaughtException : java.lang.NullPointerException이 : 가상 메소드를 "호출 시도 java.lang.Object 상위 android.content (ArrayAdapter.java:153) at null 객체 참조에 .Context.getSystemService (java.lang.String) 'null가 있습니다. com.example.bryan.customer84.PhoneSearch $ 9.run (PhoneSearch.java:606) android.os.Handler.handleCallback (Handler.java:739) android.os.Handler.disp atchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:145)에서 android.app.ActivityThread.main (ActivityThread.java:5835)에서 에서 java.lang.reflect.Method의 . invoke (네이티브 메소드) at java.lang.reflect.Mava.372) .internal.os.ZygoteInit.main (ZygoteInit.java:1194)

+0

충돌 로그를 공유 할 수 있습니까? –

+0

다시 버튼을 누르면 작업이 삭제되고 어댑터를 업데이트하려고하는데 null 일 수있는 작업이 발생합니다 –

+0

getActivity()에 대한 run() 내부의 null 체크! = null –

답변

0

이미 가비지 수집 된 활동에 액세스하려고합니다 ... getActivity()! = null에 대해 run() 내에서 null 체크를 추가하십시오.

+0

고마워, 그게 내가 한 짓이고 그것은 매력처럼 일했다. –