本文实例为大家分享了android学习之broadcast的使用方法,供大家参考,具体内容如下
实现开机启动提示网络的广播
package com.example.luobo.broadcasttest; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.content.intentfilter; import android.net.connectivitymanager; import android.net.networkinfo; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.widget.toast; public class mainactivity extends appcompatactivity { private intentfilter intentfilter; private networkchangereceiver networkchangereceiver; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); intentfilter = new intentfilter();//创建一个过滤器实例 intentfilter.addaction("android.net.conn.connectivity_change");//添加接收connectivity_change消息 networkchangereceiver = new networkchangereceiver(); registerreceiver(networkchangereceiver,intentfilter); } @override protected void ondestroy() { super.ondestroy(); unregisterreceiver(networkchangereceiver); } class networkchangereceiver extends broadcastreceiver{ @override public void onreceive(context context, intent intent) { connectivitymanager connectivitymanager = (connectivitymanager) getsystemservice(context.connectivity_service);//通过此方法获取connectivitymanager实例 networkinfo networkinfo = connectivitymanager.getactivenetworkinfo();//调用实例connectivitymanager的getactivenetworkinfo()方法获取networkinfo实例 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(); } } } }
创建bootcompletereceiver类
右击com.example.luobo.broadcasttest,new->other->broadcast,输入名字bootcompletereceiver,勾选enable,exported,重写onreceive()方法。由于使用的是快捷方式创建的类,所需权限会在androidmanifest.xml中自动注册。标签为receiver,但是还不够修改。
package com.example.luobo.broadcasttest; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.widget.toast; public class bootcompletereceiver extends broadcastreceiver { @override public void onreceive(context context, intent intent) { toast.maketext(context,"boot complete",toast.length_short).show(); } }
在androidmaifest.xml注册权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.luobo.broadcasttest"> <uses-permission android:name="android.permission.access_network_state" />//注册接收网络消息广播 <uses-permission android:name="android.permission.receive_boot_completed"/>//注册接收开机启动广播 <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundicon="@mipmap/ic_launcher_round" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <receiver android:name=".bootcompletereceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.boot_completed"/>//开机时系统会发一条此广播 </intent-filter> </receiver> </application> </manifest>
上述在androidmainfest.xml中注册接收广播消息属于静态注册,在oncreate()中注册的接收广播属于动态注册。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论