2

BroadcastReceiver在我的主要活动中注册了一个。活动在其中一个选项卡中发送一个粘性以触发广播接收器(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);    
}
4

1 回答 1

2

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

sendBroadcast(i);

这个

于 2012-09-19T07:36:22.780 回答