为啥这段代码没有收到我的广播?

Posted

技术标签:

【中文标题】为啥这段代码没有收到我的广播?【英文标题】:Why my broadcast is not received in this code?为什么这段代码没有收到我的广播? 【发布时间】:2015-09-07 15:37:13 【问题描述】:

为什么这段代码没有收到我的广播? 我在下面发布我的代码。当我运行它时,我可以看到发送者广播意图。 但是接收方没有响应。 我已经在棒棒糖 AVD 上测试过了。

收货人清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="kr.co.company.mybroadcastreceiver" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".MyBroadcastReceiver">
            <intent-filter>
                <action android:name="kr.co.company.START_WEB" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

接收者代码

public class MyBroadcastReceiver extends BroadcastReceiver 
    @Override
    public void onReceive(Context context, Intent intent) 
        Uri uri = Uri.parse("http://www.google.com");
        Intent intent1 = new Intent(Intent.ACTION_VIEW, uri);
        intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent1 );
    

发件人代码

public class MyBroadcastSender extends Activity 

@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_broadcast_sender);

Button click = (Button) findViewById(R.id.click);
click.setOnClickListener(new Button.OnClickListener() 
    @Override
    public void onClick(View v) 
        Intent intent = new Intent();
        intent.setAction("kr.co.company.START_WEB");
        sendBroadcast(intent);
    
);


【问题讨论】:

【参考方案1】:

如果另一个应用程序正在发送意图,您应该将其添加到清单中的接收者定义中:

android:exported="true"

【讨论】:

以上是关于为啥这段代码没有收到我的广播?的主要内容,如果未能解决你的问题,请参考以下文章

有人能告诉我为啥这段代码似乎可以工作,但不能……拜托?

为啥我在 Swift 中没有收到来自 Firebase 的推送通知?

为啥这段代码没有将数据插入数据库?

当没有浮点数据类型时,为啥这段代码会出现浮点异常?

Golang:收到特定 POST JSON 时向 websocket 广播消息

“Python 线程障碍”为啥这段代码有效,有没有更好的方法?