Я имею дело с API распознавания активности, пытаясь заставить его работать в фоновом режиме. Итак, я сделал сервис, который подключается к Play Services и постоянно жив. Я бросаю тост, когда служба уничтожается и создается снова. Проблема в том, что через некоторое время, даже когда служба работает, она перестает обнаруживать действия.Android ActivityRecognition API, перестает работать в фоновом режиме
Вот некоторые из кода службы.
@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 где я повторно, если он не подключен.
Этот код отлично работает в течение некоторого времени, после чего он внезапно останавливается. У кого-нибудь есть идеи, почему?
Спасибо.
Вы уверены, что оно остановилось или оно просто замедляется? Когда активности мало, Android будет отправлять сообщения всего один раз каждые 3 минуты. – MikeWallaceDev
Да, он полностью останавливается. – AndroidCoder