onReceive 手続き

以下に修正したナニで通勤路で試験してみました。

        private class TimeCounterReceiver extends BroadcastReceiver {

            @Override
            public void onReceive(Context context, Intent intent) {
                Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                jo.getLastKnownLocation(location);

                webView.loadUrl("javascript:reloadFunction()");
            }
        }

5 秒に一度の GPS とのやりとりな設定なので marker の動作は微妙ですが、以下な reload にてそれなりに動作している様子。

  function reloadFunction() {
    marker.setMap(null);
    var latlng = new google.maps.LatLng(roid.getLat(), roid.getLng());
    map.setCenter(latlng);
    setMarker(latlng);    
  }

3G な通信がどの程度か、ってあたりは運転してたのであまり確認できませんでした。

別途

ソースは晒します。

てか

このケイスでは Service 使うより Thread 使う方が楽な気がしてます。以下、備忘なメモ。

  • Activity を Runnable 実装にする
  • onCreate() で postDelayed() する
  • run() で onReceive() な処理して再度 postDelayed() する

これで十分な気がする。