音楽を再生するサービスを備えたアプリがあります。これは、サービスが進行し続ける (したがって再生される) ため、機能しています。
ただし、ユーザーが任意のアクティビティでホーム キーを押すと、アプリケーションがアイドル状態かどうかを検出できるはずです。私が見つけたすべての質問には、「onPause()またはonStop()を使用してください」のような回答がありますが、それは1つのアクティビティに対してのみ機能し、すべてのアクティビティにコードをコピーすることは汚い解決策のようです.
私の主に私は試しました:
- onDestroy: ホーム キーが押されたときに機能しません。
- onPause: 別のインテントを開始しても音楽を停止します (意図していません)。
メインから現在のアクティビティを検出することを検討しましたが、それはあまりにも汚い解決策です。
私の主な活動では、サービス (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);
}
私は何をすべきか?