0

Androidアプリの開発方法を勉強しています。アクティビティが 1 つだけの非常に単純なアプリから始めました。次に、BGM を再生するサービスを追加しました。もちろん、onPause()、onStop()、onDestroy() メソッドを使用してサービスを管理しました。

しかし、今、私は別のアクティビティを持っているので、新しいアクティビティが開かれるとバックグラウンドミュージックが停止します(メソッド onPause() が呼び出されるため)。

ユーザーがアクティビティから別のアクティビティに移行したときではなく、ユーザーがアプリ全体を閉じるか破棄したときにのみ、バックグラウンド ミュージックを停止したいと考えています。

おそらく、アプリの構築を開始したときに大きな間違いを犯したのでしょう。今、私はこの問題を解決しようとしています。

bindService も使用しようとしましたが、まだ同じ問題があります。

この問題をどのように対処すればよいですか?

4

2 に答える 2

0

音楽を再生するには、Android を使用する方が良いと思いますService

Service は、ユーザーと対話せずに実行時間の長い操作を実行したい、または他のアプリケーションが使用する機能を提供したいというアプリケーションの要求を表すアプリケーション コンポーネントです。各サービス クラスには、そのパッケージの AndroidManifest.xml に対応する宣言が必要です。サービスは Context.startService() と Context.bindService() で開始できます。

サービスは、他のアプリケーション オブジェクトと同様に、ホスティング プロセスのメイン スレッドで実行されることに注意してください。つまり、サービスが CPU を集中的に使用する操作 (MP3 再生など) またはブロックする操作 (ネットワークなど) を実行する場合、その作業を実行する独自のスレッドを生成する必要があります。詳細については、プロセスとスレッドを参照してください。IntentService クラスは、実行する作業をスケジュールする独自のスレッドを持つ Service の標準実装として利用できます。

于 2013-01-22T16:02:55.087 に答える
0

サービスから、フォアグラウンド アクティビティ (またはパッケージ) がこの回答にあるメソッドを使用しているかを定期的に確認できます。自分のものでない場合は、サービスを終了できます。

于 2013-02-26T20:49:59.450 に答える