Tworzę aplikację do gier z muzyką w tle. Korzystałem z usługi Android, aby odtwarzać muzykę w tle, ponieważ chciałem uruchomić BGM podczas zmiany aktywności. Mój problem polega na tym, że zadeklarowałem metodę finish() w metodzie onPause w każdym działaniu (nie chcę, aby użytkownik zwrócił & chce zabić działanie).Zatrzymaj usługę Android po zamknięciu aplikacji
, więc gdy zamierzam wykonać inną czynność, zadzwonię doDestroy i zatrzymam usługę. Chcę zatrzymać usługę dokładnie wyjść z aplikacji (naciskając przycisk home) i chcesz przejrzeć działania z BGM i zakończyć() w onPause(). Jest to możliwe? czy istnieje inne rozwiązanie?
public class BackgroundMusicService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.topbgm);
player.setLooping(true); // Set looping
player.setVolume(100, 100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return 1;
}
public void onStart(Intent intent, int startId) {
// TO DO
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}
public void onStop() {
}
public void onPause() {
}
@Override
public void onDestroy() {
player.stop();
player.release();
Log.i("service", "service killed");
}
@Override
public void onLowMemory() {
}
}
w jawnym
<service android:name=".BackgroundMusicService" android:process=":remote" />
dzięki za reply.I zrobił this.if czytasz moje pytanie ostrożnie, problem jest wtedy, gdy zmiany czynności, wykończenie() wywołuje metodę onDestroy i zatrzymuje usługę .masz jakiś pomysł? – Hassy31