0

私はを使用してServiceおり、次のようにレシーバーを動的に登録します

private BroadcastReceiver yourCallReceiver;
 yourCallReceiver = new CallReceiver();

        // Registers the receiver so that your service will listen for broadcasts
        registerReceiver(yourCallReceiver, theCallFilter);

のように登録解除します

@Override
    public void onDestroy() {
        super.onDestroy();

        // Do not forget to unregister the receiver!!!
        unregisterReceiver(yourCallReceiver);
    }

しかし、レシーバーを登録解除するときにいくつかの作業をシャットダウンする必要があるという問題がありますが、レシーバーにはonDestroy方法がありません。これどうやってするの?サービス中の受信者を登録解除するときに、サードパーティの作業を停止するにはどうすればよいですか? これは可能ですか?

4

1 に答える 1

2

次のように、カスタムクラスに呼び出されるメソッドonDestroy(または呼び出したいもの) を追加します。CallReceiver

public void onDestroy(){
  //Write your clean-up code here
}

サービスのonDestroyで、レシーバー オブジェクトで を呼び出しonDestroyます。

public void onDestroy() {
    super.onDestroy();
    // Do not forget to unregister the receiver!!!
    unregisterReceiver(yourCallReceiver);
    yourCallReceiver.onDestroy();
}
于 2012-10-15T10:50:19.797 に答える