を実行するサービスで受信機を登録することができます。
public class TestReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("TestReciver",intent.getAction()+"\n"
+intent.getDataString()+"\n"
+"UID: "+intent.getIntExtra(Intent.EXTRA_UID,0)+"\n"
+"DATA_REMOVED: "+intent.getBooleanExtra(Intent.EXTRA_DATA_REMOVED, false)+"\n"
+"REPLACING: "+intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)
);
}
}
とマニフェストで(自分の<アプリケーション>タグの内部で)このようにそれを追加します:あなたはこのように受信機を使用する場合
<receiver android:name="TestReciver" >
<intent-filter >
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
あなたはそれが常に意志任意のレジスタを呼び出したり、登録解除しません。データを取得する準備ができています。
ユーザーがあなたのアプリをSDカードに移動させる場合、これは機能しません。 SDカードのマウントが解除されたときにイベントが送信された場合、受信者はアクセスできなくなり、イベントを見逃します。
現在登録されているレシーバは、現在一時停止中のアクティビティ内に存在するマニフェストに登録されている場合、その囲みアクティビティのプライベート変数にアクセスできますか? – Peterdk
気にしなくても、Receiverクラスはインターフェイスではなく、継承するクラスであることがわかりました。 – Peterdk
@chris、これはアンドロイドの文書には記載されていません。 –