解决安卓Android 8.0以上的静态广播无法注册
2019-07-17 15:08
375 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39326574/article/details/96310112
自定义广播分两个步骤:1、发送广播 2、接收广播
1.先使用Android Studio创建一个广播接收类。File->New->Other->Broadcast Receiver,先创建一个广播类,这个创建的类会自动帮我们继承BroadcastReceiver类,接收广播,需要继承这个类。
package com.example.boardreceiver1; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving // an Intent broadcast. Toast.makeText(context, "收到广播", Toast.LENGTH_SHORT).show(); } }
上面的代码,很简单,就是在接收到广播时,弹出一个toast提示框。
创建这个类时,同时会在AndroidManifest.xml注册一个服务,注意加粗内容是在自动注册的代码上手工添加的内容:
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> **<intent-filter> <action android:name="com.example.boardreceiver1.broadcast1" /> </intent-filter>** </receiver>
2.发送广播
在界面上添加一个Button按钮,然后编写按钮的onclick事件。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn1=findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent("com.example.boardreceiver1.broadcast1");//这一步可以分解为下面两步 // Intent intent=new Intent(); // intent.setAction("com.example.boardreceiver1.broadcast1"); intent.setComponent(new ComponentName("com.example.boardreceiver1","com.example.boardreceiver1.MyReceiver")); // 上面这一行在Android 7.0及以下版本不是必须的,但是Android 8.0或者更高版本,发送广播的条件更加严苛,必须添加这一行内容。 // 创建的ComponentName实例化对象有两个参数,第1个参数是指接收广播类的包名,第2个参数是指接收广播类的完整类名。 sendBroadcast(intent,null); } }); } }
3.运行结果
相关文章推荐
- 解决android 8.0中静态注册广播(app开机自启)
- android 8.0 移除静态注册广播
- Android静态注册无法接受系统广播问题
- Android开发静态注册广播接收不到的问题的解决办法
- Android静态注册无法接受系统广播问题
- android静态注册的广播在某些手机上无法正常接收
- 学习小记--android静态注册广播接收器之惑--6.6
- Android静态注册内部类广播BroadcastReceiver
- Android 8.0版本更新无法自动安装问题的解决方法
- android 静态注册广播
- android中广播的使用(动态和静态注册)
- Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动
- Android关于如何取消静态注册的广播事件,你知道吗?
- 【Android成长之路】全局大喇叭——广播机制的浅谈(接收系统广播与动、静态注册接收器)
- Android无法动态注册主活动的解决方法
- Android 广播 动、静态注册广播(作为内部类使用)
- 静态注册无法监听隐式广播