2016-06-02 2 views
0

Я создаю приложение для Android, в котором я запускаю службу в фоновом режиме, которая должна выступать в качестве слушателя для Datachanged.BackgroundService в настоящее время ничего не делает, кроме отображения журнала внутри OnDatachanged.I хотел бы сделать что-то вроде этого.Можно ли добавить сервис в качестве слушателя в Android?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent =new Intent(this,BackgroundService.class); 
    startService(intent); 
    Button button=(Button)findViewById(R.id.button); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
       @Override 
       public void onConnected(Bundle connectionHint) { 
        Log.d("Inside", "onConnected: " + connectionHint); 
        Toast.makeText(getApplicationContext(),"Inside On connected",Toast.LENGTH_SHORT).show(); 

       } 
       @Override 
       public void onConnectionSuspended(int cause) { 
        Log.d("Inside", "onConnectionSuspended: " + cause); 
       } 
      }) 
      .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { 
       @Override 
       public void onConnectionFailed(ConnectionResult result) { 
        Log.d("Inside", "onConnectionFailed: " + result); 
       } 
      }) 
      // Request access only to the Wearable API 
      .addApiIfAvailable(Wearable.API) 
      .build(); 
    mGoogleApiClient.connect(); 
    // This is what I want to achieve.Is there any way around for this? 
    Wearable.DataApi.addListener(mGoogleApiClient, BackgroundService.class); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 
} 

Справочная служба расширяет намерениеУслуги и осуществляет Data.ApiDataListener.

+0

Вы хотите Службу, которая слушает изменения данных для ношения? –

+0

Да, это именно то, что я пытаюсь реализовать. Я также попытался создать новый класс, который расширяет службу Wearable listener. Но на datachanged этого класса никогда не вызывается. – UndoTheUndo

ответ

0

Если вы подклассом WearableListenerService, он будет вызываться системой, когда соответствующие данные будут изменены в API. Вам не нужно звонить addListener в Activity, если это явно не то, что вы хотите сделать.

Я предлагаю вам начать с одного из примеров приложений (https://developer.android.com/samples/DataLayer кажется хорошим выбором) и построить оттуда. API работают.

+0

Это шаги, которые я выполнил для реализации wearableService 1) Я создал новый класс, который расширяет Wearable Service и переопределяет методы onDatachanged и Oncreate. 2) Я объявляю службу в файле манифеста 3) Я создал службу, используя начальную активность. При этом поток входит в метод «onconnected». Однако даже после изменения данных в слое данных метод Ondatachanged никогда не вызывается. Что я пропускаю? – UndoTheUndo

+0

Есть много более потенциальных точек отказа, чем три приведенных вами шага, к сожалению. Вот почему я предложил начать с одного из примеров приложений, как известного рабочего кода, и изменить его там. Без моего проекта (+ устройства) передо мной я даже не могу догадаться, где вы поступили неправильно. – String

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

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