Android通信广播的注册与监听以及自定义广播
2019-03-13 19:33
92 查看
代码如下~
主函数代码
[code]package com.imooc.demo; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { public static final String MY_ACTION = "com.imooc.demo.afdsabfdaslj"; public static final String BROADCAST_CONTENT = "broadcast_content"; private ImoocBroadcastReceiver mBroadcastReceiver; private EditText mInputEditText; private Button mSendBroadcastButton; private TextView mResultTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 用包名做title setTitle(getPackageName()); mInputEditText = findViewById(R.id.inputEditText); mSendBroadcastButton = findViewById(R.id.sendBroadcastButton); mResultTextView = findViewById(R.id.resultTextView); // 新建广播接收器 mBroadcastReceiver = new ImoocBroadcastReceiver(mResultTextView); // 注册广播接收器 // 为广播接收器添加Action IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.PACKAGE_REMOVED"); intentFilter.addAction(MY_ACTION); intentFilter.addAction() // 注册广播接收器 registerReceiver(mBroadcastReceiver, intentFilter); mSendBroadcastButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 新建广播 Intent intent = new Intent(MY_ACTION); // 放入广播要携带的数据 intent.putExtra(BROADCAST_CONTENT, mInputEditText.getText().toString()); sendBroadcast(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); // 取消注册广播接收器,不然会导致内存泄露 if(mBroadcastReceiver != null){ unregisterReceiver(mBroadcastReceiver); } } }
广播接收代码~ImoocBroadcastReceiver
[code]package com.imooc.demo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; import android.widget.TextView; /** * Created by renkangke . */ public class ImoocBroadcastReceiver extends BroadcastReceiver { TextView mTextView; public ImoocBroadcastReceiver() { } public ImoocBroadcastReceiver(TextView textView) { mTextView = textView; } private static final String TAG = "ImoocBroadcastReceiver"; @Override public void onReceive(Context context, Intent intent) { // 接收广播 if(intent != null){ // 接收到的是什么广播 String action = intent.getAction(); Log.d(TAG, "onReceive: " + action); // 判断是什么广播(是不是我们自己发送的自定义广播) if(TextUtils.equals(action, MainActivity.MY_ACTION)){ // 获取广播携带的内容, 可自定义的数据 String content = intent.getStringExtra(MainActivity.BROADCAST_CONTENT); if(mTextView != null){ mTextView.setText("接收到的action是:"+ action + "\n接收到的内容是:\n" + content); } } } } }
相关文章推荐
- android动态注册广播监听服务demo
- android动态注册广播,监听网络状态变化,判断网络模式
- Delphi实现Android 广播事件监听(动态注册广播)
- Android学习小记----监听电量的变化(不能静态注册的广播)
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android随笔15——注册锁屏广播以及…
- jQuery基础教程之如何注册以及触发自定义事件
- Android 通过注册广播,实时监听网络连接与断开状态的变化
- 自定义动态注册广播和静态注册广播
- 利用接口实现自定义监听事件以及观察者模式
- 简单代码注册广播接收者并监听多个广播
- 使用BroadCast实现进程间通信以及静态注册和动态注册广播的区别
- android中对u盘以及tf卡插入的广播监听
- Abdroid中静态(主清单)注册广播接收者,监听开机广播
- Android学习小记----监听电量的变化(不能静态注册的广播)
- 二、IIS6.0和7.0区别以及自定义HttpModule、HttpHandler注册
- 安卓笔记之自定义广播事件发送自定义广播以及接受者优先级
- Android---动态注册监听网路变化的广播
- 动态注册广播,监听网络状态变化,判断网络模式
- Android 监听开机广播启动服务 动态注册时间变化监听广播