The Android Learning Site offers two approaches for connecting and disconnecting LocationClient. In the training, “Extracting the current location” is LocationClientinitialized to onCreate, connect()called in, onStartand disconnect()called in onStoplike this (taken from the source code ).
@Override
protected void onCreate(Bundle savedInstanceState) {
mLocationClient = new LocationClient(this, this, this);
}
@Override
public void onStop() {
mLocationClient.disconnect();
super.onStop();
}
@Override
public void onStart() {
super.onStart();
mLocationClient.connect();
}
You can then choose when and where to start or stop location updates.
LocationClient , . connect(), onConnected, requestActivityUpdates removeActivityUpdates disconnect(). DetectionRequester, :
public void requestUpdates() {
getActivityRecognitionClient().connect();
}
@Override
private void onConnected() {
getActivityRecognitionClient().requestActivityUpdates(...);
getActivityRecognitionClient().disconnect();
}
@Override
public void onDisconnected() {
mActivityRecognitionClient = null;
}
private ActivityRecognitionClient getActivityRecognitionClient() {
if (mActivityRecognitionClient == null) {
mActivityRecognitionClient = new ActivityRecognitionClient(...);
}
return mActivityRecognitionClient;
}
DetectionRemover, .
(requestUpdates removeUpdates) , :
public enum RequestType {
START, STOP;
}
@Override
public void onConnected(Bundle bundle) {
switch (mRequestType) {
case START:
getActivityRecognitionClient().requestActivityUpdates(...);
break;
case STOP:
getActivityRecognitionClient().removeActivityUpdates(...);
break;
default:
break;
}
getActivityRecognitionClient().disconnect();
}
@Override
public void onDisconnected() {
mActivityRecognitionClient = null;
}
public void requestUpdates() {
mRequestType = RequestType.START;
getActivityRecognitionClient().connect();
}
public void removeUpdates() {
mRequestType = RequestType.STOP;
getActivityRecognitionClient().connect();
}
private ActivityRecognitionClient getActivityRecognitionClient() {
if (mActivityRecognitionClient == null) {
mActivityRecognitionClient = new ActivityRecognitionClient(...);
}
return mActivityRecognitionClient;
}
.
, , . . " ".