안드로이드 서비스의 스레드 안에서 토스트를 띄워야할 상황이 있다.
하지만 토스트함수의 직접호출이 안되고
서비스 내에는 runOnUiThread() 도 사용 불가하기 때문에 다음과 같이 대체함수를 만들어 호출한다.
1. 서비스 클래스 안에서 멤버 변수 선언
Handler handler; // for toast UI
2. OnCreate() 내부에서 초기화
handler = new Handler();
3. 함수 추가
private void _runOnUiThread(Runnable runnable) { handler.post(runnable);
}
4. 우리가 원하는 토스트 띄우기
(3.에서 선언한 함수를 불러오기)
(3.에서 선언한 함수를 불러오기)
_runOnUiThread(new Runnable() { public void run() { Toast.makeText(getApplicationContext(),
"TOAST MESSAGE TEXT",
Toast.LENGTH_LONG).show();
}
});
댓글 없음:
댓글 쓰기