0

Act_1, Act_2 and Act_3、および の3 つのアクティビティがありservice:RefreshServiceます。

ユーザーがホームボタンをクリックすると、RefreshService更新操作が停止します。

Act_1.onStop()今、私はリフレッシュを停止するメソッドをオーバーライドしますが、Act_1開始するAct_2と、リフレッシュも停止します。これは私が望むものではありません。

そして、私はAct_1.onKeyDown()メソッドをオーバーライドしますが、それも良くありません。

いいデザインありますか

4

1 に答える 1

0

ですから、あなたの要件を理解させてください。アクティビティ A、B、または C からバックグラウンドに移行しているかどうかに関係なく、アプリケーションがバックグラウンドに移行するたびにサービスを停止したいと考えています。

そのため、このアプローチに従うことができます。

Activity-A onPause() -> サービスを停止するためのタイマー タスクを開始します (例: 15 秒)。ここから、アプリケーションはホーム画面またはアクティビティ B に移動できます。

Activity-B onResume() -> タイマー タスクをキャンセルすると、サービスは引き続き実行されます。

ホーム画面 タイマー タスクがトリガーされ、サービスが停止されます。

于 2012-10-22T09:46:52.947 に答える