您的位置:首页 > 移动开发 > Android开发

android广播的使用实例

2013-09-03 09:55 225 查看
总共分3步

第一步:定义一个BroadcastReceiver广播接收类:

view plain

private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ 

        @Override 

        public void onReceive(Context context, Intent intent) { 

            String action = intent.getAction(); 

            if(action.equals(ACTION_NAME)){ 

                Toast.makeText(Test.this, "处理action名字相对应的广播", 200); 

            } 

        } 

         

    }; 

 

第二步:注册该广播:

view plain

public void registerBoradcastReceiver(){ 

        IntentFilter myIntentFilter = new IntentFilter(); 

        myIntentFilter.addAction(ACTION_NAME); 

        //注册广播       

        registerReceiver(mBroadcastReceiver, myIntentFilter); 

    } 

 

第三步:触发响应

 

view plain

mBtnMsgEvent = new Button(this); 

        mBtnMsgEvent.setText("发送广播"); 

        mBtnMsgEvent.setOnClickListener(new OnClickListener() { 

            @Override 

            public void onClick(View v) { 

                Intent mIntent = new Intent(ACTION_NAME); 

                mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据"); 

                 

                //发送广播 

                sendBroadcast(mIntent); 

            } 

        }); 

     

 

 

-----最后附上完整代码:

view plain

package my.yaner; 

 

import android.app.Activity; 

import android.content.BroadcastReceiver; 

import android.content.Context; 

import android.content.Intent; 

import android.content.IntentFilter; 

import android.os.Bundle; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.Button; 

import android.widget.LinearLayout; 

import android.widget.Toast; 

 

public class Test extends Activity{ 

    private final String ACTION_NAME = "发送广播"; 

    private Button mBtnMsgEvent = null; 

     

    protected void onCreate(Bundle savedInstanceState){ 

        super.onCreate(savedInstanceState); 

         

        //注册广播 

        registerBoradcastReceiver(); 

         

        LinearLayout mLinearLayout = new LinearLayout(this); 

        mBtnMsgEvent = new Button(this); 

        mBtnMsgEvent.setText("发送广播"); 

        mLinearLayout.addView(mBtnMsgEvent); 

        setContentView(mLinearLayout); 

         

        mBtnMsgEvent.setOnClickListener(new OnClickListener() { 

            @Override 

            public void onClick(View v) { 

                Intent mIntent = new Intent(ACTION_NAME); 

                mIntent.putExtra("yaner", "发送广播,相当于在这里传送数据"); 

                 

                //发送广播 

                sendBroadcast(mIntent); 

            } 

        }); 

    } 

     

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ 

        @Override 

        public void onReceive(Context context, Intent intent) { 

            String action = intent.getAction(); 

            if(action.equals(ACTION_NAME)){ 

                Toast.makeText(Test.this, "处理action名字相对应的广播", 200); 

            } 

        } 

         

    }; 

     

    public void registerBoradcastReceiver(){ 

        IntentFilter myIntentFilter = new IntentFilter(); 

        myIntentFilter.addAction(ACTION_NAME); 

        //注册广播       

        registerReceiver(mBroadcastReceiver, myIntentFilter); 

    } 

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息