Android_Broadcast

静态和动态两种注册方法:

  • 静态注册, 在AndroidManifest.xml中加上<Receiver>标签。
  • 动态注册, 通过 Context.registerReceiver()方法进行注册。比如在onResume中注册,在onPause中注销。
public class MyReceiver extends BroadcastReceiver{ 
public MyReceiver() { 
super(); 
Log.d(AppConstants.LOG_TAG, "Receiver constructor"); 
} 
@Override 
public void onReceive(Context context, Intent intent) {        
Log.d(AppConstants.LOG_TAG, "onReceive"); 
String message = intent.getStringExtra("msg");    
Log.i(AppConstants.LOG_TAG, message);  
Toast.makeText(context, "Received! msg: " + message, Toast.LENGTH_SHORT).show(); 
}
}

发送广播

public static final String BROADCAST_ACTION ="com.example.demobroadcast.BroadcastAction";
Intent intent = new Intent();     
intent.setAction(BROADCAST_ACTION);   
intent.putExtra("msg", "发送广播"); 
sendBroadcast(intent);

动态注册

@Override protected void onResume() { 
super.onResume(); 
mReceiver = new MyReceiver(); 
IntentFilter intentFilter= new   
IntentFilter(BROADCAST_ACTION); registerReceiver(mReceiver,  
intentFilter); 
} 
@Override protected void onPause() { 
super.onPause(); 
unregisterReceiver(mReceiver); 
}

静态注册

<receiver
        android:name="com.example.demobroadcast.MyReceiver">
        <intent-filter  >
            <action android:name="com.example.demobroadcast.BroadcastAction" />
        </intent-filter>
    </receiver>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Broadcast概述 该部分内容主要翻译自Google Android Developers文档 Android...
    lbtrace阅读 6,568评论 0 2
  • 前言:本文所写的是博主的个人见解,如有错误或者不恰当之处,欢迎私信博主,加以改正! 原文链接,demo链接 广播简...
    PassersHowe阅读 8,769评论 0 9
  • 参考承香墨影的两篇博客Android--广播BroadcastReceiverAndroid--拦截系统Broad...
    合肥黑阅读 6,177评论 2 11
  • 转自Android四大基本组件介绍与生命周期Android四大基本组件分别是Activity,Service服务,...
    开子的私家地阅读 5,307评论 0 5
  • 面试题总结 通用 安卓学习途径, 寻找资料学习的博客网站 AndroidStudio使用, 插件使用 安卓和苹果的...
    JingBeibei阅读 5,673评论 2 21