无法接收我自己发送的广播

时间:2017-08-06 09:26:36

标签: android

我在这里发了一个广播:

   <artifactId>projectB</artifactId>

<dependencies>
 <dependency>
    <groupId>com.example</groupId>
    <artifactId>projectA</artifactId>
    <version>1.0</version>
    </dependency>
</dependencies>

但是我无法在我的广播接收器中收到它:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setAction("com.example.administrator.broadcasttest.MY_BROADCAST");
            intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
            sendBroadcast(intent);
            // Toast.makeText(MainActivity.this, "You have send a broadcast just now.", Toast.LENGTH_SHORT).show();
        }
    });

}
}

这是我的AndroidManifest.xml:

public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "received in MyBroadcastReceiver",
            Toast.LENGTH_SHORT).show();
}

另外,我的andriod版本是7.1.1,我的API版本是26 我已经尝试了很多方法来解决它,但没有办法 我正在寻找很长时间无济于事

请帮助或尝试给我一些关于如何实现这一点的想法。谢谢你们。

2 个答案:

答案 0 :(得分:0)

java文件中不能有多个公共类。将您的广播接收器类移动到单独的文件中。

答案 1 :(得分:0)

我通常通过XML和代码注册接收器。

尝试注册:

BroadcastReceiver whatever = new MyBroadcastReceiver();
registerReceiver(whatever, intentFilter); 
//Intentfilter is the intent you get in MyBroadcastReceiver

希望它有所帮助。

编辑:不要忘记注册它:

unregisterReceiver(whatever);