Android Tutorial

(avery) #1

By : Ketan Bhimani


432 

doServiceStart(intent, startId);
return Service.START_REDELIVER_INTENT;
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.v(DEBUG_TAG, “onStart() called, must be on L3 or L4”);
doServiceStart(intent,startId);
}

Next, let’s look at the implementation of the doStartService()
method in greater detail:

@Override
public void doServiceStart(Intent intent, int startId) {
super.onStart(intent, startId);
updateRate = intent.getIntExtra(EXTRA_UPDATE_RATE, -1);
if (updateRate == -1) {
updateRate = 60000;
}
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.NO_REQUIREMENT);
criteria.setPowerRequirement(Criteria.POWER_LOW);
location = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
String best = location.getBestProvider(criteria, true);
location.requestLocationUpdates(best,
updateRate, 0, trackListener);
Notification notify = new
Notification(android.R.drawable.stat_notify_more,
“GPS Tracking”, System.currentTimeMillis());
notify.flags |= Notification.FLAG_AUTO_CANCEL;
Intent toLaunch = new Intent(getApplicationContext(),
ServiceControl.class);
PendingIntent intentBack =
PendingIntent.getActivity(getApplicationContext(),
0, toLaunch, 0);
notify.setLatestEventInfo(getApplicationContext(),
“GPS Tracking”, “Tracking start at “ +
updateRate+”ms intervals with [“ + best +
“] as the provider.”, intentBack);
notifier.notify(GPS_NOTIFY, notify);
}

Free download pdf