アクティビティがアクティブな場合にのみ受信されるように見える接続変更のレシーバーを持つバックグラウンド サービスがあります。
@Override
public void onCreate() {
mContext = this;
IntentFilter connectivityChangeFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(receiver, connectivityChangeFilter);
次のようにマニフェストに設定しました。
<service
android:name="com.myservice.TimeService"
android:label="com.myservice.TimeService" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</service>
マニフェストにレシーバーとして登録されている、正常に動作するブート完了用の別のレシーバーがあります(これとは異なります)。
インテント フィルタだけではブロードキャストを実行できませんか? レシーバーがサービスのメソッドを呼び出すようにしたいので、サービスのメソッドにアクセスできる必要がありますが、レシーバーがサービスにバインドできるとは思いません。
-- 更新 一言で言えば、サービスと対話するレシーバーを静的に宣言できるかどうかを知りたいです。動的宣言は、アプリがアクティブな場合にのみ機能します。