0

私は少し混乱しています。AccessibilityServiceは、すべての新しい着信通知を取得し、Broadcastを使用してBroadcastReceiverに情報を送信できます。私のAccessibilityServiceはそうします

public void onServiceConnected() {
    // ...
    Communication c = new Communication();
    IntentFilter filter = new IntentFilter();

    filter.addAction("com.cilenco.lockscreen.notification.send");
    registerReceiver(c, filter);
}   

Intent intent=new Intent("com.cilenco.lockscreen.notification.send");

intent.putExtra("string1", string1);
intent.putExtra("string2", string2);

sendBroadcast(intent);

ブロードキャストを送信した後、AccessibilityServiceはまだ有効です。新しい通知が検出された場合、onServiceConnectedが再度呼び出されますが、受信者は再び接続されます。

unregisterReceiver(c);

これをどこに呼ぶ必要がありますか?

4

2 に答える 2

1

unregisterReceiver()放送を受信したくないときに電話をかけます。慣例はそれがあなたの中で呼ばれるということですonPause()。または、もう必要がない場合は息子。

于 2013-03-19T18:22:31.293 に答える
0

インテントをリッスンする必要がなくなったとき、またはサービスのonDestroy()が呼び出されたときのいずれか早い方で、unregisterReceiver()を呼び出す必要があります。

于 2013-03-21T18:58:54.993 に答える