マニフェストに BroadcastReceiver を登録することと、プログラムで登録することの主な違いを理解しようとしています...
私の理解は基本的に次のとおりです(何か不足している場合は、誰かが私のポイントを修正していただければ幸いです)。
マニフェストに登録:
- OS は、アプリケーションの実行状態に関係なく、必要に応じて魔法のようにクラスを見つけてインスタンス化し、onReceive() メソッドを呼び出します。
- receive はブロードキャストごとに 1 回だけ呼び出されます (つまり、マニフェストに登録することは、ブロードキャストを受信するために「クラス」を登録するようなものであり、ブロードキャストは必要に応じてクラスをインスタンス化します) (??)
プログラムで登録:
- コードで登録するということは、クラスのインスタンスを登録してブロードキャスト メッセージを受信することを意味します (つまり、コードが少しずさんで、何度も登録すると、複数の BroadcastReceiver インスタンスがすべて onReceive() で呼び出されることになります)。放送
- 登録を解除するには、以前に登録した特定の BroadcastReceiver インスタンスを登録解除する必要があります
- アプリケーションが OS によって破棄された場合、 onReceive() メソッドはブロードキャストのために呼び出されません
ありがとう