private void startTrackingService() {
    if (!DateTimes.isSameDay(mDate, Calendar.getInstance())) {
      mDate = Calendar.getInstance();

      TextView txtDate = (TextView) findViewById(R.id.txtDate);
      txtDate.setText(DateTimes.dateFormat().format(mDate));

      GPSHelper.loadTrackings(mDate);
      updateList();
    }

    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(PresenceManagerUtil.CHANGE_STATUS);
    getApplicationContext().registerReceiver(mIspReceiver, intentFilter);

    mPresenceManager.startPresence();
    for (String p : mLocationManager.getAllProviders()) {
      LocationListener ll = new MyLocationListener();
      mLocationManager.requestLocationUpdates(
          p, 60000, // 通知のための最小時間間隔(ミリ秒)
          30, // 通知のための最小距離間隔(メートル)
          ll);
      locationListeners.add(ll);
    }
    buttonVisible(true);
  }
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mDate = Calendar.getInstance();

    findViewById(R.id.btnStart).setOnClickListener(this);
    findViewById(R.id.btnStop).setOnClickListener(this);
    TextView txtDate = (TextView) findViewById(R.id.txtDate);
    txtDate.setText(DateTimes.dateFormat().format(mDate));
    txtDate.setOnClickListener(this);

    buttonVisible(false);

    mHandler = new Handler(getMainLooper());

    mGeocoder = new Geocoder(this, Locale.getDefault());

    mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    //		// Criteriaオブジェクトを生成
    //		Criteria criteria = new Criteria();
    //		criteria.setAccuracy(Criteria.ACCURACY_FINE);
    //		criteria.setPowerRequirement(Criteria.POWER_LOW);
    //		locationProvider = mLocationManager.getBestProvider(criteria, true);
    //		log.debug("Location Provider: " + locationProvider);
    //		setTitle(getTitle() + " - " + locationProvider);

    mPresenceManager = PresenceManager.getInstance(getApplicationContext());

    MyAdapter adapter = new MyAdapter(this, GPSHelper.getTrackings());

    ListView listView = (ListView) findViewById(R.id.listTracking);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // ListView listView = (ListView)parent;

            // TrackingData item = (TrackingData)listView.getItemAtPosition(position);

            if (position % 2 == 0) {
              startActivity(new Intent(MainActivity.this, MapLineActivity.class));
            } else {
              startActivity(new Intent(MainActivity.this, MapCircleActivity.class));
            }
          }
        });

    mHandler.postDelayed(
        new Runnable() {
          @Override
          public void run() {
            GPSHelper.loadTrackings(mDate);
            updateList();
          }
        },
        100);
  }