2016-08-30 1 views

답변

4

당신은 runOnUiThread를 사용할 수 있습니다

runOnUiThread(new Runnable(){ 
     public void run() { 
      // Your code 
     } 
    }); 

또는

Handler mainHandler = new Handler(context.getMainLooper()); 

Runnable myRunnable = new Runnable() { 
    @Override 
    public void run() { 
     // Your code 
    } 
}; 
mainHandler.post(myRunnable); 
당신이 ThreadPoolExecutor에 의해 관리되는 스레드에서 작업을 시작하는 방법을 배웠 이전 단원에서는

developer.android.com

. 이 마지막 단원에서는 작업의 데이터를 UI (사용자 인터페이스) 스레드에서 실행되는 개체로 보내는 방법을 보여줍니다. 이 기능을 사용하면 작업에서 배경 작업을 수행 한 다음 결과를 비트 맵과 같은 UI 요소로 이동할 수 있습니다.

모든 앱에는 View 개체와 같은 UI 개체를 실행하는 고유 한 특수 스레드가 있습니다. 이 스레드를 UI 스레드라고합니다. UI 스레드에서 실행되는 객체 만 해당 스레드의 다른 객체에 액세스 할 수 있습니다. 스레드 풀의 스레드에서 실행하는 작업은 UI 스레드에서 실행되지 않으므로 UI ​​개체에 액세스 할 수 없습니다. 백그라운드 스레드에서 UI 스레드로 데이터를 이동하려면 UI 스레드에서 실행중인 핸들러를 사용하십시오.

+0

저는 TimerTask에서 키보드를 열었을 때 응용 프로그램이 충돌하지 않는 이유를 알고 싶습니다. –

관련 문제