1

アプリケーション コンテキストを使用してデータを共有し、アクティビティ間で (またはアクティビティが閉じられたときに) 関数を実行するアプリを作成しました。また、BroadcastReceiverインテントを処理する があります。さらに、新しいスレッドを生成して、App Context に保存されている一般的な関数を実行します。すべてのアクティビティとブロードキャスト レシーバーは を呼び出すことでアプリ コンテキストにアクセスできるため、アプリthis.getApplicationContext()全体でデータと機能を共有しながらバックグラウンドで実行する方がはるかに簡単な方法のようです。

しかし、いくつか質問があります。この方法にマイナス面はありますか? これが問題なく機能するのに、なぜサービスを作成する必要があるのでしょうか? (そしてこれまでのところ、それはあります)サービスと比較して、この方法でバッテリーの消耗が大きくなりますか?

4

1 に答える 1

1

正解はないと思います。BroadcastReceiver メカニズムが正常に機能している場合は、そのまま使用します。サービスは必要ありません。イベント/アクションを待機するために長時間アイドル状態になる可能性がある Service を使用するよりも、BroadcastReceiver を使用する方が適切です。私の2セント。

于 2011-02-19T09:04:14.393 に答える