Я создал музыкальный сервис для своего приложения (музыкальный плеер), и после некоторых тестов я наблюдаю за поведением, которое вызывает у меня головную боль, поскольку я не знаю, как его решить.Музыкальный сервис останавливается, когда активность остановлена / закрыта?
В целях тестирования я изменил сервис, поэтому, как только он запущен, он воспроизводит определенный mp3-файл с моей SD-карты. Кроме того, я изменил приложение, так что началось первое действие, он запускает службу, а затем вызывает «finish()».
ОК, поэтому ... Я запускаю приложение, и начинается первое действие, начинается моя работа и воспроизведение музыки, завершение действия и закрытие приложения ... ... музыка остановлена и через несколько секунд служба перезагружается (я использую флаг START_STICKY, поэтому я полагаю, что это нормально).
Я не хочу, чтобы музыка останавливалась при закрытии приложения, или, другими словами, я не хочу, чтобы служба была остановлена (а затем перезапущена, потому что она была остановлена), когда мое приложение закрыто.
Прямо сейчас, чтобы управлять музыкальным сервисом, я запускаю службу, а затем я привязываюсь к ней, чтобы я мог вызвать сервисные функции, определенные мной в интерфейсе.
Любые идеи?
Спасибо!
EDIT:
Это пример того, что мое приложение и сервис делают (в тестах я делаю).
активность:
public class FirstActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startService(new Intent(this, MyService.class));
...
// Here is a postDelayed that will run after 2 seconds and call finish()
}
}
Услуги:
public class MyService extends Service {
private MediaPlayer mPlayer;
@Override
public void onCreate() {
mPlayer = new MusicPlayer(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Here is the code that plays the music using MediaPlayer
return START_STICKY;
}
}
Друг, который кодирует приложение со мной, не экспериментирует с таким же поведением. Для него это прекрасно работает. Может быть, моя проблема связана с HTC Sense? (У меня есть HTC One S). –
Пример кода поможет указать, что вы делаете – Blundell