为什么我写的代码和老师的一样不行呢
我写的代码和老师的一样,只不过是用的动态注册,为什么不行呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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积分~
来为老师/同学的回答评分吧