android怎么发送特定广播的?
答案:3 悬赏:80
解决时间 2021-03-20 16:52
- 提问者网友:对着我说爱我
- 2021-03-20 11:42
android怎么发送特定广播的?
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-03-20 12:36
起一个线程,每发一个广播后就sleep一分钟,如此循环。(或者接受系统的timechanged这个广播,这个广播好像一分钟发一次)。
Android 在发送广播时的方法 sendBroadcast(Intent)。
①:Intent myIntent = new Intent();——【创建Intent对象】
②:myIntent.setAction(String)——【设置一般的要执行的动作。参数:动作一个动作的名称,如ACTION_VIEW。应用程序的具体行动,应与供应商的包名作为前缀。】
③:myIntent.putExtra(String,Object)——【广播中额外发送的数据,String为自定义key,Object表示多种数据类型】
④:sendBroadcast(myIntent);——【发送广播】
接收广播
Android在接收广播的方法是注册一个广播接收器 registerReceiver(MyReceiver,IntentFilter)。
①:首先创建MyReceiver类(类名自定义) 继承 BroadcastReceiver类。——【创建广播接收器】
②:在MyReceiver中重写public void onReceive(Context context, Intent intent)方法。这个方法在接收到广播后触发。——【重写处理方法】
③:在Activity或者Service启动时 onCreate()、onStartCommand()等方法中实例化 MyReceiver类——【启动时实例化广播接收器】
④:IntentFilter filter = new IntentFilter();——【创建IntentFilter对象 意图过滤器】
⑤:filter.addAction(String);——【在过滤器中加入过滤条件,说明接收什么广播】
⑥:registerReceiver(cmdReceiver, filter);——【注册广播,参数为(广播接收器,意图过滤器)】
Android 在发送广播时的方法 sendBroadcast(Intent)。
①:Intent myIntent = new Intent();——【创建Intent对象】
②:myIntent.setAction(String)——【设置一般的要执行的动作。参数:动作一个动作的名称,如ACTION_VIEW。应用程序的具体行动,应与供应商的包名作为前缀。】
③:myIntent.putExtra(String,Object)——【广播中额外发送的数据,String为自定义key,Object表示多种数据类型】
④:sendBroadcast(myIntent);——【发送广播】
接收广播
Android在接收广播的方法是注册一个广播接收器 registerReceiver(MyReceiver,IntentFilter)。
①:首先创建MyReceiver类(类名自定义) 继承 BroadcastReceiver类。——【创建广播接收器】
②:在MyReceiver中重写public void onReceive(Context context, Intent intent)方法。这个方法在接收到广播后触发。——【重写处理方法】
③:在Activity或者Service启动时 onCreate()、onStartCommand()等方法中实例化 MyReceiver类——【启动时实例化广播接收器】
④:IntentFilter filter = new IntentFilter();——【创建IntentFilter对象 意图过滤器】
⑤:filter.addAction(String);——【在过滤器中加入过滤条件,说明接收什么广播】
⑥:registerReceiver(cmdReceiver, filter);——【注册广播,参数为(广播接收器,意图过滤器)】
全部回答
- 1楼网友:时光不老我们不分离
- 2021-03-20 14:45
Intent mIntent = new Intent(“com.android.custom.broadcast”);
context.sendBroadcast(mIntent);
这是发的,当然得写相应的接收
- 2楼网友:气场征服一切
- 2021-03-20 13:31
要注册接受广播的处理程序, 有两种方式 1. 在androidmanifest.xml重注册, 比如监听系统的开机广播和屏幕解锁广播 <receiver android:name="com.bestjoy.app.common.update.bootcompletedreceiver" > <intent-filter> <action android:name="android.intent.action.boot_completed" /> <action android:name="android.intent.action.user_present" /> </intent-filter> </receiver> 这样, 一旦有定义的action发出来, bootcompletedreceiver的onreceive方法就会回调了,这样的监听,不需要你的app已经在运行。 2. 在程序中动态创建监听器, 比如还是解锁广播, 在activity的oncreate()中生成一个intentfilter对象 intentfilter filter=new intentfilter(); //为intentfilter添加一个action filter.addaction("android.intent.action.user_present"); bootcompletedreceiver = new userpresentreceiver(); registerreceiver(smsreceiver, filter); 在ondestroy的时候去注册 unregisterreceiver(bootcompletedreceiver); 这样的方式只有在activity生命周期oncreate()-ondestroy()之间有效。 对于一些特俗的系统级别的广播,即使你按照上面的任何一种方式做了, 也可能监听不到, 这是android 系统做了保护了, 网上查一下就知道了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯