为什么我写的代码和老师的一样不行呢
我写的代码和老师的一样,只不过是用的动态注册,为什么不行呢
public class MainActivity extends AppCompatActivity {
private Button button;
private final String CUSTOM_ACTION="com.sample.custom.action";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setAction(CUSTOM_ACTION);
MainActivity.this.sendBroadcast(intent);
}
});
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter=new IntentFilter();
filter.addAction("com.sample.custom.action");
registerReceiver(mBatter,filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mBatter);
}
private BroadcastReceiver mBatter = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("wahaaaaa",intent.getAction());
Intent intent1=new Intent();
intent1.setClass(context,MainActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
};
}0
收起
正在回答
1回答
你是说BroadcastReceiver没有收到广播是吗?那你这个Activity启动起来了吗?在一个APP中怎么都叫 MainActivity?改个名字,不是一个发送广播,一个是接收广播嘛。另外onReceive()中自己启动自己?这也让你看不出效果啊。
Android数据通信开发与应用2018版
- 参与学习 人
- 提交作业 147 份
- 解答问题 687 个
本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星