我正在处理 Activity Recognition API,试图让它在后台运行。因此,我创建了一个连接到 Play Services 并且一直处于活动状态的服务。当服务被销毁并再次创建时,我举杯祝酒。问题是一段时间后,即使服务正在运行,它也会停止检测活动。
这是该服务的一些代码。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
buildGoogleClient();
return START_STICKY;
}
private void buildGoogleClient()
{
mGoogleApiClientActivityDetection = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(ActivityRecognition.API)
.build();
mGoogleApiClientActivityDetection.connect();
}
@Override
public void onConnected(Bundle bundle)
{
if (mGoogleApiClientActivityDetection.isConnected() && detectionConnectionSet == false)
{
detectionConnectionSet = true;
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(
mGoogleApiClientActivityDetection,
Constants.ACTIVITY_DETECTION_INTERVAL_IN_MILLISECONDS,
PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
}
}
如果未连接,我还会覆盖我重新连接的 onConnectionSuspended 和 onConnectionFailed。
这段代码可以正常工作一段时间,然后突然停止。有人对为什么有一些想法吗?
谢谢。