0
장기 실행 프로세스를 실행하고 Handler를 호출하기 위해 android.app.Service (IntentService가 아니라 AsyncTask가 아닌)를 사용하고 싶습니다. .sendMessage (..) 프로세스 중에.Android : 방법 : 백그라운드에서 실행중인 서비스를 만들고 Handler.sendMessage (..)를 호출하십시오.
아래 코드를 사용하면 충분합니다 (서비스의 onCreate 메소드)?
@Override
public void onCreate() {
new Thread(new Runnable() {
@Override
public void run() {
Log.w(LOG_LOGCAT_TAG, "DEBUG MODE - CallbackImpl handleError() called");
// get the location information (lat,lon,altitude etc..)
// then, call callback methods.
_locationProvider.getLocation(_locationCallbackImpl);
}
}).start();
}
private final LocationCallbackImpl _locationCallbackImpl = new LocationCallbackImpl();
private class LocationCallbackImpl
implements
LocationCallback
{
@Override
public void done() {
Log.i(LOG_LOGCAT_TAG, "LocationCallbackImpl done() called");
// switch to UI thread
_handler.sendMessage(_handler.obtainMessage(DONE_MESSAGE));
}
@Override
public void handleError(ReturnCode returnCode) {
Log.e(LOG_LOGCAT_TAG, "LocationCallbackImpl handleError() called:" + returnCode.name());
// send a message to display the error
_handler.sendMessage(_handler.obtainMessage(ERROR_MESSAGE, returnCode));
}
@Override
public void handleSuccess(Location location) {
Log.i(LOG_LOGCAT_TAG, "LocationCallbackImpl handleSuccess() called");
_handler.sendMessage(_handler.obtainMessage(LOCATION_MESSAGE, location));
}
}
모든 콜백이 위의 스레드에서 호출되면 사용자에게 묻고 싶습니다.
실제로 해당 스레드에서 실행 중인지 어떻게 확인할 수 있습니까? 그것을 확인하는 방법이 있습니까?
처리기에 대한 getter/setter를 적용하기 위해 샘플 코드를 수정 하시겠습니까? – eros