我有一个具有播放音乐服务的应用程序。这是有效的,因为该服务只是继续运行(并因此运行)。
但是,当用户在任何活动中按下主页键时,我应该能够检测到我的应用程序是否空闲。我一直在环顾四周,发现的每个问题都有一个类似的答案:“使用 onPause() 或 onStop()”,但这仅适用于一个活动,并且将代码复制到每个活动似乎是一个肮脏的解决方案。
我主要尝试过:
- onDestroy:按下主页键时不起作用。
- onPause:即使在开始另一个意图(非预期)时也会停止音乐。
我考虑过从 main 检测当前活动,但这是一个太脏的解决方案。
在我的主要活动中,我启动了我的服务(backgroundMusicPlayer):
@Override
protected void onCreate(Bundle savedInstanceState) {
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
setContentView(R.layout.activity_main);
else
setContentView(R.layout.activity_main_landscape);
//_________BRON(MediaPlayer): http://stackoverflow.com/questions/3369068/android-play-sound-on-button-click-null-pointer-exception
backgroundMusicPlayer = new Intent(MainActivity.this, BackgroundMusicPlayer.class);
startService(backgroundMusicPlayer);
mp = MediaPlayer.create(MainActivity.this, R.raw.buttonclick); //knopgeluiden laden
super.onCreate(savedInstanceState);
}
我该怎么办?