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