程序笔记   发布时间:2022-06-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了广播接收器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

有序广播

sendorderedbroadcast()方法接收两个参数,第一个参数仍然是 Intent,第二个参数是一个与权限相关的字符串,这里传入 null就行了。

广播传递的顺序

注册的时候广播设定的priority的优先级

ID:name=".MybroadcastReceiver">
    
        ID:name="com.example.broadcasttest.MY_broaDCAST"/> 
    
 

终止广播

本地广播

主要就是使用了一个LocalbroadcastManager来对广播进行管理
本地广播的优点

  1. 可以明确地知道正在发送的广播不会离开我们的程序,因此不需要担心机密数据泄漏的问题。

  2. 其他的程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。

  3. 发送本地广播比起发送系统全局广播将会更加高效

1.发送本地广播

Intent intent = new Intent("com.example.broadcasttest. LOCAL_broaDCAST");
localbroadcastManager.sendbroadcast(intent); // 发送本地广播

2.注册本地广播

broadcasttest.LOCAL_broaDCAST");
localReceiver = new LocalReceiver();
localbroadcastManager.registerReceiver(localReceiver,intentFilter);

3.注销本地广播

localbroadcastManager.unregisterReceiver(localReceiver);

broadcastReceiver {
    @OverrIDe public voID onReceive(Context context,Intent intent) { 
        Toast.makeText(context,"received local broadcast",Toast.LENGTH_SHORT).show(); 
    } 
}

监听系统广播

1.网络变化

1. 添加网络权限

2. 继承广播接收者

@H_673_80@broadcastReceiver { 
    @OverrIDe public voID onReceive(Context context,Intent intent) { 
        Connectivitymanager connectionManager = (Connectivitymanager) getSystemservice(Context.CONNECTIVITY_serviCE);
      NetworkInfonetworkInfo = connectionManager.getActiveNetworkInfo();
      if (networkInfo != null && networkInfo.isAvailable()) { 
          Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show(); 
     } else { 
         Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show(); 
     }
   }
}

3. 注册监听网络变化

ID.net.conn.CONNECTIVITY_CHANGE"); 
networkChangeReceiver = new NetworkChangeReceiver(); // 自定义的类,继承至broadcastReceiver 
registerReceiver(networkChangeReceiver,intentFilter);
......

2.开机启动

1.添加权限

2.继承广播接收者

lic class BootCompleteReceiver extends broadcastReceiver { 
    @OverrIDe public voID onReceive(Context context,"Boot Complete",Toast.LENGTH_LONG).show();
    }
} 

3.Manifest中静态注册

 
     
        <>ID:name="androID.intent.action.bOOT_COMPLETED"/>
    
 

示例:强制下线

  1. 发送一条广播

  2. 接收到广播后finish掉所有的activity

ollector.finishAll(); // 销毁所有活动 
Intent intent = new Intent(context,LoginActivity.class);
**intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);** 
context.startActivity(intent); // 重新启动LoginActivity

设置AlertDialog的类型,保证在广播接收器中可以正常弹出

设置AlertDialog的类型,保证在广播接收器中可以正常弹出
AlertDialog alertDialog = dialogBuilder.create(); 
alertDialog.getwindow().setType(WindowManager.LayoutParams.TYPE_SYSTE M_ALERT); 
alertDialog.show(); 

注意:

[doc]

大佬总结

以上是大佬教程为你收集整理的广播接收器全部内容,希望文章能够帮你解决广播接收器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。