我在这里发了一个广播:
<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 我已经尝试了很多方法来解决它,但没有办法 我正在寻找很长时间无济于事
请帮助或尝试给我一些关于如何实现这一点的想法。谢谢你们。
答案 0 :(得分:0)
java文件中不能有多个公共类。将您的广播接收器类移动到单独的文件中。
答案 1 :(得分:0)
我通常通过XML和代码注册接收器。
尝试注册:
BroadcastReceiver whatever = new MyBroadcastReceiver();
registerReceiver(whatever, intentFilter);
//Intentfilter is the intent you get in MyBroadcastReceiver
希望它有所帮助。
编辑:不要忘记注册它:
unregisterReceiver(whatever);