为什么我写的代码和老师的一样不行呢
我写的代码和老师的一样,只不过是用的动态注册,为什么不行呢
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 星