2015-10-18 3 views
2

Я создаю музыкальный плеер, и мне нужно добавить поисковую панель для песен. Я проверил онлайн, но большинство результатов для медиаплеера, который находится в действии, а не в сервисе. Я новичок в использовании медиа-плеера, поэтому любые подробные результаты будут очень признательны.Обновление прошивки от службы

+0

вы знакомы с "связанных услуг"? это хороший пример, когда вы можете использовать шаблон «привязанной локальной службы» – pskink

+0

Я читал об этом и пробовал несколько реализаций, но я не получил его на работу. –

+0

Вы попробовали шаблон «связанный местный сервис»? – pskink

ответ

1

Вы можете использовать широковещательный приемник для передачи данных из службы в действие.

Добавить метод ниже в Сервис и вызвать этот метод всякий раз, когда вы хотите обновить SeekBar.

public static void publishResult(Context context, int percentage){ 
    Intent intent = new Intent("Broadcast"); 
    intent.putExtra("INTENT_TYPE", "SEEKBAR_RESULT"); 
    intent.putExtra("PERCENTAGE", 10); 
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent); 
} 

В действии Добавить следующий код Для получения широковещательных сообщений.

@Override 
    public void onResume() { 
     super.onResume(); 
     //Register Broadcast receiver 
     LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mBroadcastReceiver, new IntentFilter("Broadcast")); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     //Unregister Broadcast receiver 
     LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mBroadcastReceiver); 
    } 

    private BroadcastReceiver mBroadcastReceiver= new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String intentType = intent.getStringExtra("INTENT_TYPE"); 
      if(intentType.equalsIgnoreCase("SEEKBAR_RESULT")){ 
       int percentage = intent.getIntExtra("PERCENTAGE"); 
      } 
     } 
    }; 

Более подробно на LocalBroadcastManager см: http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

+0

Как насчет того, что активность не находится на переднем плане? Как обновление поисковой строки в правильное положение при возобновлении деятельности? –

+0

@AlexKombo это правильный вопрос. Вы можете сохранить результат в переменной Application Global или в Shared-preference и в методе Resume, который вы можете обновить. А для работы переднего плана вы можете использовать широковещательный приемник для обновления Seekbar. –

+0

Я получил его на работу. Большое спасибо!! –

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