頻繁に呼び出されるBroadcastReceiverを持っていますが、多くの人が
Android: process =":remote"
彼らの受信機で。鉱山は、いくつかのことを確認し、条件が一致した場合にアラームをアクティブにするために使用されます。私の質問は、上記のマニフェストで投稿した行を使用する必要がありますか?もしそうなら、そうすることの利点は何ですか?
_Android:process=":remote"
_を使用してレシーバーを定義することにより、基本的に別のプロセス(= VM)でレシーバーを実行します。典型的なユースケースでは、これを別のプロセスで実行する必要はありません。あなたがやりたいことは、おそらくローカルで(APKプロセスで)うまく実行できます。
_Android:process=":remote"
_を使用することの欠点は、実行するために追加のリソース(この場合は別のプロセス)が必要になることです。その場合、基本的に2つのVMを処理し、シングルトンなどの一部のパターンでは、静的フィールドをアプリとリモートサービス間で共有できなくなります。
_Android:process=":remote"
_を使用する利点は、一部のユースケースでは、アプリケーションをシャットダウンした後、またはリモートクライアントが必要な場合に(独自のプロセスで)実行し続けるサービスを開始すると便利な場合があることです。サービスにバインドできるようにします。 onReceive()
メソッドを呼び出して別のプロセスで実行している場合、ブロードキャストレシーバーはアプリケーションのメインスレッドをブロックしません(ただし、これを実装する他の方法があります)。
ほとんどの場合、ほとんどの一般的なユースケースでは、_Android:process=":remote"
_を使用せずに逃げることができます。