2

BroadcastReceiver私は私の主な活動に登録しています。アクティビティは、タブの1つにスティッキーを送信して、ブロードキャストレシーバー(TabActivityアプリケーション)をトリガーします。

すべて正常に動作しますが、アプリを再起動すると、スティッキーが自動的に送信され(ユーザーによってトリガーされない)、ビューが開きます。

私の質問は:それはどのように可能ですか?私は何かを誤解しましたか?そして、どうすればそれを修正できますか?

MainActivity:OnCreate:

    registerReceiver(openOutgoingCall, new IntentFilter("OPENOUTGOINGCALL"));

BroadcastReceiver:

private BroadcastReceiver openOutgoingCall = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            Bundle extras = intent.getExtras();
            if(extras.isEmpty() == false) {
                HashMap<String,String> callData = (HashMap<String, String>) extras.get("callData");
                openOutgoingCall(callData); 
            }

        }
    };

TabHost内のアクティビティ

public void openCall(View view) {
    Intent i = new Intent("OPENOUTGOINGCALL");
    i.putExtra("callData", detailInfo);
    sendStickyBroadcast(i);    
}
4

1 に答える 1

2

スティッキー ブロードキャストは、後で取得できるように (受信されても​​) 存在し続ける必要があります。おそらく、次を使用してブロードキャストする簡単な方法を試す必要があります。

sendBroadcast(i);

これを読んでください。

于 2012-09-19T07:36:22.780 に答える