У меня есть MP3-игра Сервис, который имеет свой собственный класс и использует Mediaplayer и подключается к HTTP. Он должен воспроизводить один из URL-адресов, выбранных в предыдущем действии, который я передаю в PlayerActivity.Передача параметра в текущую нишу службы в Android
создать Service таким образом в PlayerActivity OnCreate:
startService(new Intent(this, PlayerService.class));
Intent connectionIntent = new Intent(this, PlayerService.class);
bindService(connectionIntent, mp3PlayerServiceConnection, Context.BIND_AUTO_CREATE);
Вот первый запуск выбранного URL. Я запускаю MediaPlayer вызов в новом потоке, чтобы не блокировать UI (вызов в ActivityPlayer сам по себе):
private ServiceConnection mp3PlayerServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder binder) {
mp3Service = ((LocalBinder) binder).getService();
Thread t = new Thread() {
public void run() {
mp3Service.playSong(getApplicationContext(),url);
}
};
t.start();
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
};
Проблема заключается в том, как передать новый URL в теме этой службы, когда пользователь разрушает эту активность, идет в меню и выберите новый URL. Новый поток должен воспроизводиться в одном потоке, но у меня были ситуации, которые возвращались к Home с кнопкой «Назад» и снова запускали приложение. Я получал одновременно 2 URL-адреса. Может быть, причиной новой декларации Thread(). Поэтому, когда Activity создает URL-адрес, как передать его URL-адрес прямо в поток Service, поэтому, если это старый URL-адрес, ничего не происходит, и если он новый, плеер переключается на новый URL-адрес, но не играет 2 потока вместе?
Спасибо.
Вы возвращаете тот же Binder на bindService или новый? –
Вот код из класса обслуживания: 'public final IBinder localBinder = new LocalBinder(); @Override public IBinder onBind (намерение намерения) { return localBinder; } Публичный класс LocalBinder extends Binder { PlayerService getService() { return PlayerService.this; } } ' – Tramway11