设为首页 加入收藏

TOP

Android 交互功能组件BroadcastReceiver 的简单使用
2014-11-23 23:41:50 来源: 作者: 【 】 浏览:6
Tags:Android 交互 功能 组件 BroadcastReceiver 简单 使用

主要包括:BroadcastReceiver , Intent, Adapters,ContentProviders。


本篇简单讲述BroadcastReceiver的使用,记录自己的学习经历。


BroadcastReceiver使用主要包含几个部分,一是继承BroadcastReceiver类,实现onReceive方法;二是广播消息发送的源头(sendBroadcast);三是数据信息的传递


首先,实现一个IntentTestActivity继承Activity,添加一个按钮,单击后发送一个广播消息


package com.android.test;


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


public class IntentTestActivity extends Activity {
/** Called when the activity is first created. */
private static Button button = null;
private static int nCount = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

button = (Button)findViewById(R.id.send_button);
button.setBackgroundColor(Color.GRAY);
button.setHighlightColor(Color.RED);

button.setOnClickListener(new OnClickListener() { // 添加按键监听器

public void onClick(View v) {
// TODO Auto-generated method stub
Intent itent = new Intent();
itent.setAction("com.android.IntetTest"); // 指定Intent的action 行为
itent.putExtra("data", nCount++);// 此处为了便于测试发送一个整数
IntentTestActivity.this.sendBroadcast(itent); // 通过Intent来启动广播并发送广播消息

Toast.makeText(IntentTestActivity.this,"发送广播消息"+"["+nCount+"]", Toast.LENGTH_SHORT).show();
}
});

setContentView(R.layout.main);
}
}


说明:发送广播消息以Intent为桥梁,将此次Intent意图对应的action行为发送给广播接收者,对于数据的传递putExtra( )可以传递多种类型的数据以及bundle


接着,实现广播接收器MyReceiver,继承BroadcastReceiver,实现onReceive接口,来完成广播的接收,并作相应的操作


package com.android.test;


import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;


public class MyReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().toString().equals("com.android.IntetTest")){ // 注意此处的Intent的action要对应广播发送者发送时的action
int value = intent.getExtras().getInt("data"); // 接收广播中传送的数据
// 收到信息之后显示一下,可做其他对应操作
Toast.makeText(context, "收到广播消息"+"["+value+"]", Toast.LENGTH_SHORT).show();
}
}


}



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 的Event机制浅析 下一篇Java 学习之 Swing 编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: