1

Я имею дело с 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 где я повторно, если он не подключен.

Этот код отлично работает в течение некоторого времени, после чего он внезапно останавливается. У кого-нибудь есть идеи, почему?

Спасибо.

+0

Вы уверены, что оно остановилось или оно просто замедляется? Когда активности мало, Android будет отправлять сообщения всего один раз каждые 3 минуты. – MikeWallaceDev

+0

Да, он полностью останавливается. – AndroidCoder

ответ

0

Вы используете услугу Intent или обычное обслуживание. Также вам нужно создать новый класс и распространить его на WakeFulBroadcastReiever и сделать то же самое в манифесте, чтобы служба запускалась, как только устройство загружается.

 Смежные вопросы

  • Нет связанных вопросов^_^