Android: Как: создать сервис, работающий в фоновом режиме, и вызвать Handler.sendMessage (..) - PullRequest
0 голосов
/ 13 сентября 2011

Я хочу использовать android.app.Service (не IntentService, не AsyncTask), чтобы запустить мой долго работающий процесс и вызывать 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));
    }
}

И еще хотел бы спросить вас, ребята, будут ли все обратные вызовы вызываться в созданном выше потоке?

Как я могу проверить, если онидействительно работают в этой теме?есть ли способ проверить это?

1 Ответ

1 голос
/ 13 сентября 2011

Вам нужно внедрить getter and setter of Handler inside service и установить этот обработчик из действия, где вы хотите получать его уведомление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...