0
長期実行プロセスを実行してHandlerを呼び出すためにandroid.app.Service(IntentServiceではなく、AsyncTask) .sendMessage(..)プロセス中に。Android:How to:バックグラウンドで実行されているサービスを作成し、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));
}
}
そして、すべてのコールバックは、上記で作成したスレッドで呼び出される場合、皆さんにお願いしたいのも?
実際にスレッドで実行されているかどうかを確認するにはどうすればよいですか?それをチェックする方法はありますか?
ハンドラのゲッタ/セッタを適用するためにサンプルコードを修正しますか? – eros