2015-03-03 2 views
0

Я пытаюсь отправить содержимое DataMap с устройства Android на носимое. Он отлично работает, когда приложение находится на переднем плане в моем приложении, но как только я заблокирую мобильное устройство, оно застряло на pendingResult.await(), и носимый не получает никаких данных, где, как обычно, если я буду держать приложение открытым ,Отправка DataMap в фоновом режиме android

public void send(final DataMap dataMap) { 
new Thread(new Runnable() { 
     @Override 
     public void run() { 
      PutDataMapRequest putDMR = PutDataMapRequest.create(WEARABLE_DATA_PATH); 
      putDMR.getDataMap().putAll(dataMap); 
      PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi.putDataItem(googleClient, request); 
      DataApi.DataItemResult result = pendingResult.await(); 
      if(result.getStatus().isSuccess()) { 
       Log.d("qwe", "Data item set: " + result.getDataItem().getUri()); 
      }    
     } 
    }).start(); 
} 

Этот метод в классе, который простирается WearableListenerService и я добавил XML в AndroidMainfest для службы также. Я что-то совершенно неправильно или что-то пропустил?

Благодаря

ответ

0

попытаться проверить статус клиента google api для каждой отправки. use blockingConnect, когда клиент google api не подключен.

0

Узнал я делал googleClient.disconnect() в моей основной деятельности OnStop(), который вызывает его повесить, как googleClient не был подключен раз мое приложение было в фоновом режиме.

+0

Фактически это должно быть сделано через Сервис – user3290180

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