首页 > 系统 > Android > 正文

Android BroadcastReceiver的基本使用

2019-11-09 17:25:33
字体:
来源:转载
供稿:网友

首先我们在发送者的Activity里创建两个控件 EditText 输入框 (发送内容) Button 按钮(发送) 分别给每个控件设置一个ID 给Button设置一个onClick跳转事件

1,在java代码里面 2,先绑定一下输入框的ID 3,在new一个Intent 4,设置广播的名字,每个项目的包名是唯一的,所以为了确保唯一性要在前面加上包名 5,实现刚刚Button的onClick跳转事件,携带数据,和发送广播 例如: @Override PRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_android_20); ed_main_context = (EditText) findViewById(R.id.ed_main_context); intent = new Intent(); //设置广播的名字(设置Action) intent.setAction(“com.example.myapplication.955”); } public void send(View view){ String content=ed_main_context.getText().toString();

//携带数据 intent.putExtra("data",content); //发送广播(无序广播) // sendBroadcast(intent);//发送黏性广播(动态广播) sendStickyBroadcast(intent); }

} (黏性广播主要用于动态广播在关闭后,广播发送者发送了消息,再次启动动态广播的时候能看见发送的离线消息) 发送黏性广播要在清单文件里面设置权限 例如:

再新建一个项目作为广播的接收者 1,新建一个MyReceived01的java类,需要继承 BroadcastReceiver(只有一个生命周期) 2,实现 BroadcastReceiver的生命周期 onReceive 3,与电台的名字进行判断 4,在清单文件里面进行配置 例如:

public class MyReceived01 extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if (“com.example.myapplication.955”.equals(intent.getAction())){} String data= intent.getStringExtra(“data”); Log.i(“text”,”1号接受完毕,广播为:”+data); } } (配置广告接收者有两种, 1. 在清单文件中配置(静态广播) 2. 使用java 代码(动态广播)(在无序的前提下相对静态广播,动态广播具有优先权) )

动态广播: 1:在MainActivity onResume 生命周期里面注册广播 2,在 onDestroy 生命周期里面销毁广播

例如: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceived02 = new MyReceived02(); intentFilter = new IntentFilter(); intentFilter.addAction(“com.example.myapplication.955”); }

@Overrideprotected void onResume() { super.onResume(); //注册广播 registerReceiver(myReceived02,intentFilter);}@Overrideprotected void onDestroy() { super.onDestroy(); //注销动态广播 unregisterReceiver(myReceived02);}

} 系统广播: 电话监听的三种状态: CALL_STATE_RINGING(来电) CALL_STATE_OFFHOOK(通话) CALL_STATE_IDLE(挂断)

广播


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表