Android 自定义广播发送和接收

android系统会发送许多系统级别的广播,比如屏幕关闭,电池电量低等广播。同样应用可以发起自定义“由开发者定义的”广播。广播是从一个应用内部向另一个应用发送消息的途径之一。

BroadcastReceiver是一个可以监听和响应广播的组件。本文中,我们将会演示如何发送自定义广播以及如何通过编程和使用Manifest文件定义一个BroadcastReceiver来监听这一广播。我们最后只要调用sendBroadcast就可以发送广播信息了。

1,编写MyReceiver,MyReceiver代码主要是继承BroadcastReceiver的接收类。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.EditText;

public class MyReceiver extends BroadcastReceiver {

    private final static String TAG = "BR";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "broadcast: " + intent.getAction() + "\n");
    }
}

2,注册广播,可以通过java代码动态注册或在Manifest xml文件中进行注册。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.guangbo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.guangbo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver android:name="com.example.guangbo.MyReceiver" >
             <intent-filter>
                 <action android:name="com.example.android.USER_ACTION" />
             </intent-filter>
         </receiver>
    </application>

</manifest>

3,发送,可以调用activity对象的方法sendBroadcast就可以发送广播了。

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

    Button btn = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) this.findViewById(R.id.btnSendBroadcast);
        btn.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        Intent i = new Intent("com.example.android.USER_ACTION");
        sendBroadcast(i);
    }
}

我也是学习别人的,感谢百度,感谢下面文章的博主。

http://blog.csdn.net/zajin/article/details/12992705

时间: 2024-10-13 10:48:16

Android 自定义广播发送和接收的相关文章

自定义广播发送、接收

//发送自定义广播 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 发送广播事件 (消息) * @param view */ public void click(V

简单的广播发送与接收

发送端: public class MainActivity extends Activity { //先在布局文件main.xml中定义一个Button /* * * <Button * android:layout_width="fill_parent" * android:layout_height="wrap_content" * android:text="@string/button_send" * android:id=&qu

Android中 广播发送 和 接受 的简单示例

AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcast" android:versionCode="1" android:vers

Android从普通发送和接收短信到对短信进行拦截

概述: 说实话,关于Android中对短信的一些相关操作是一个比较入门的东西.那我现在还要来写这一篇博客的原因只是因为现在开发中有相关内容,而又想将这些东西分享给更多的人来学习,同时在以后对Android系统的短信进行其他学习的时候也就放在这里做一个记录了,于是就写了这篇啰嗦的文章.如果你觉得这是一个不错的东西,欢迎收藏,以便在以后更方便地查看本人在此篇文章中更新的内容.下面我就从标题中的三个方面来对Android系统中的短信操作进行一个简单地学习. 短信的发送 由于Android中对短信发送方

Android 使用EventBus发送消息接收消息

基本使用 自定义一个类 public class LoginEvent { private String code;//是否成功 public LoginEvent(String code) { this.code = code; } public String getCode() { return code; } public void setCode(String code) { this.code = code; }} 在要接收消息的页面注册: eventBus.register(this

android中如何发送及接收数据(两种方法)?

1.如在MainActivity.java中的按钮点击时设置: //发送数据方法1--简单型 i.putExtra("txt", "没错,我就是刚传来的信息!"); //发送数据方法2--复杂型 Bundle data = new Bundle(); data.putString("txt", "额,我是复杂型的数据方法发送来的!"); i.putExtras(data); 当含有返回值时,启动时用startActivityF

MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到

对照<第一行代码——Android>进行学习,第五章中说到广播包的相关知识,前面获取广播等程序例程都可以跑的通,但是在5.3.2节中,程序A发送自定义广播,并接收自定义广播,同时程序B也接收该自定义广播.实际编写代码测试程序A发送之后只有程序A收到了改自定义广播,程序B并没有接收到,我认为是我工程配置的问题,因此下载了书本中的例程直接跑,现象任然是这样,程序A发送广播之后只有程序A可以收到,程序B没有收到. 不知道是什么原因,测试的手机是小米2s,系统MIUI7,Android版本5.0.2.

Android应用程序发送广播(sendBroadcast)的过程分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6744448 前面我们分析了Android应用程序注册广播接收器的过程,这个过程只完成了万里长征的第一步,接下来它还要等待 ActivityManagerService将广播分发过来.ActivityManagerService是如何得到广播并把它分发出去的呢?这就是 本文要介绍的广播发送过程了. 广播的发送过程比广播接收器的注册过程要复杂得多了

android学习九(android的广播)

在这里 篇文章里面我将总结广播接收器(Broadcast Receiver)方面的知识.首先我们来了解下andorid中广播的类型,android中的广播可以分为2种,标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出后,所有广播接收器几乎都会同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言.这种广播的效率比较高,但同时也意味着它无法被截断的. 有序广播:则是一种同步机制的广播,在广播发出之后,同一时刻只会有一个广播接收器能够接收到这条广播信息,当这个广播接收器中逻