广播接收器在启动时自动触发

时间:2012-09-19 07:15:08

标签: android broadcastreceiver

我的主要活动中已注册BroadcastReceiver。 Activity在其中一个选项卡中发送粘性以触发广播接收器(TabActivity应用程序)。

一切正常,但是当我重新启动应用程序时,会自动发送粘性(不是由用户触发)并打开视图。

我的问题是:这怎么可能?我误解了什么吗?我该如何解决这个问题?

MainActivity: OnCreate中:

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

广播接收器:

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);    
}

1 个答案:

答案 0 :(得分:1)

粘性广播应该保持不变(即使它们被接收),以便之后也可以检索它们。也许你应该尝试使用简单的广播方式:

sendBroadcast(i);

阅读this