单击主页按钮时停止服务?

时间:2015-12-15 15:33:48

标签: java android

我有一个服务,在页面加载时播放音乐,并按原样继续播放所有其他页面。它仍然在应用程序被销毁时播放,所以我放了一个onDestroy方法和一个onResume方法。

@Override
public void onDestroy(){
    super.onDestroy();
    Intent ServiceMusic = new Intent(this, BackgroundMusic.class);
    stopService(ServiceMusic);
}

@Override
public void onResume(){
    super.onResume();
    Intent ServiceMusic = new Intent(this, BackgroundMusic.class);
    startService(ServiceMusic);
}

现在的问题是,当用户点击服务进行的主页按钮时,我实现了一个onPause并且工作正常,就在用户转到另一个页面时音乐重新开始。

@Override
public void onPause(){
    super.onPause();
    Intent ServiceMusic = new Intent(this, BackgroundMusic.class);
    stopService(ServiceMusic);
}

我如何克服这一点,以便音乐在通过应用程序时继续播放,但是当点击主页按钮时我会暂停服务?

1 个答案:

答案 0 :(得分:1)

我会删除单个活动中的代码,并在应用程序子类中使用registerActivityLifecycleCallbacks机制。这样您就可以将代码保存在一个位置,并且更加智能地启动和停止服务。

请注意,通过这些回调,您会在另一项活动开始之前收到有关活动已停止的通知,因此当您决定停止服务时,您将需要某种延迟。您可以使用具有延迟runnable的处理程序来解决此问题。

https://developer.android.com/reference/android/app/Application.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)