Android入门之广播
来源:互联网 发布:知乎 农村金融数据 编辑:程序博客网 时间:2024/05/30 23:04
广播是Android的四大组件之一,类似于监听不过是全局的。
我这是模仿Android系统广播的做法做一个无序的广播
所谓广播就是由接受者和发送至者组成
为了区分动态广播与静态广播我这里会分别建立以便区分
我这里先做一个发送者
布局样式:
android:layout_height="wrap_content" android:hint="请输入广播内容" android:id="@+id/et_main_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="发送" android:onClick="send" />
JAVA代码:
import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class MainActivity extends AppCompatActivity { private EditText et_main_content; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main_content = (EditText) findViewById(R.id.et_main_content); intent = new Intent(); //设置广播的名字(设置Action) intent.setAction("广播名且具有唯一性"); }
//按钮的 onClick事件
public void send(View view){
String content=et_main_content.getText().toString(); //携带数据 intent.putExtra("data",content); //发送广播(无序广播) sendBroadcast(intent); }
静态接受者:
新建一个项目,在minActivity同级目录新建一个类继承BroadcastReceiver
我这里就打印一下了(值已经拿到)
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * @author Zking-Snail * @time 2017/2/7 9:54 * @Version ${REV} */public class MyReceived01 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("广播名".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","静态接受者收到广播了:"+data); } }}
还有就是静态广播的话接受者要在清单文件里添加这个
<EditText android:layout_width="match_parent" <!--配置广播接受者: .在清单文件中配置(静态广播) --> <receiver android:name=".类名"> <intent-filter> <action android:name="广播名"></action> </intent-filter> </receiver>
动态接受者:
与静态的相识新建一个项目,在minActivity同级目录新建一个类继承BroadcastReceiver
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;/** * @author Zking-Snail * @time 2017/2/7 9:54 * @Version ${REV} */public class MyReceived01 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("广播名".equals(intent.getAction())){ String data=intent.getStringExtra("data"); Log.i("test","动态接受者收到广播了:"+data); } }}
不同的就是在动态广播的MainActivity里要加点东西
import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { private MyReceived02 myReceived02; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myReceived02 = new MyReceived02(); intentFilter = new IntentFilter(); intentFilter.addAction("com.zking.g150831_android20_sender.955"); } @Override protected void onResume() { super.onResume(); //动态注册广播 registerReceiver(myReceived02,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); //注销动态广播(一定要注销不然报错) unregisterReceiver(myReceived02); }}
不喜勿喷,谢谢
1 0
- Android入门之广播
- Android广播入门
- Android开发入门之采用广播接收者实现短信窃听器
- android之广播
- Android基础之广播
- Android之广播
- android学习之广播
- Android之Broadcast(广播)
- android之广播
- Android进阶之广播
- Android系列之广播
- Android之定向广播
- Android开发之广播
- Android之粘性广播
- Android之系统广播
- Android之广播机制
- Android之有序广播
- Android之广播
- Linux 批量安装 软件包的简单方法
- iOS Xcode8下CoreData的简单应用
- Redis基础教程一
- PHP redis 扩展安装
- 硬盘SMART检测参数详解[转]
- Android入门之广播
- POJ 1019 Number Sequence 已被翻译
- Spring MVC 学习中的问题
- 内部类(重点)
- 带有状态的SparkStreaming单词计数程序
- android:single和android:maxLines的区别
- 敏捷开发之Scrum扫盲篇
- 软件测试整理笔记
- 使用随机算法产生一个数,要求把1-1000W之间这些数全部生成