당신은 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 스레드에서 실행중인 핸들러를 사용하십시오.
저는 TimerTask에서 키보드를 열었을 때 응용 프로그램이 충돌하지 않는 이유를 알고 싶습니다. –