package com.jluzh.ex06;
import java.io.IOException;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class BroadDemo extends Activity implements OnClickListener{
/** Called when the activity is first created. */
public Button button1 , button2 , button3 ;
public static final String TAG="BroadcastActivity";
public static final String INTENAL_ACTION_1 = "first_broadcast";
public static final String INTENAL_ACTION_2 = "music";
public static final String INTENAL_ACTION_3 = "Notification";
public MediaPlayer mp;
public NotificationManager mNotificationManager;
public Notification notification;
Broad receiver ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
receiver = new Broad();
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
button3 = (Button)findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.button1){
Intent intent = new Intent(INTENAL_ACTION_1);
sendBroadcast(intent); //发送广播1
}
if(v.getId() == R.id.button2){
Intent intent1 = new Intent(INTENAL_ACTION_2);
sendBroadcast(intent1); //发送广播2
}
if(v.getId() == R.id.button3){
Intent intent2 = new Intent(INTENAL_ACTION_3);
sendBroadcast(intent2); //发送广播3
}
}
@Override
protected void onStart() { //动态注册广播
// TODO Auto-generated method stub
super.onStart();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(INTENAL_ACTION_1);
intentFilter.addAction(INTENAL_ACTION_2);
intentFilter.addAction(INTENAL_ACTION_3);
registerReceiver(receiver, intentFilter);
}
@Override
protected void onStop() { //取消注册广播
// TODO Auto-generated method stub
super.onStop();
unregisterReceiver(receiver);
// Log.v("stop", "stop");
}
//定义内部类
class Broad extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
Toast.makeText(BroadDemo.this, "广播接收消息"+action, Toast.LENGTH_SHORT).show();
Log.v(TAG, "send "+action);
if(action.equals(INTENAL_ACTION_2)){
mp = MediaPlayer.create(BroadDemo.this, R.raw.midi077);
Log.v("tag", "ssss");
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
}
if(action.equals(INTENAL_ACTION_3)){
mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notification = new Notification(R.drawable.icon, "滚动提示信息", System.currentTimeMillis());
Context context1 = getApplicationContext();
CharSequence contenttile = "您好";
CharSequence contenttext = "您选中了显示提示";
Intent notifyIntent = new Intent(android.content.Intent.ACTION_VIEW);
PendingIntent intent4 = PendingIntent.getActivity(BroadDemo.this, 0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
//实现跳转,启动一个新的Activity
notification.setLatestEventInfo(context1, contenttile, contenttext, intent4);
//发送通知
mNotificationManager.notify(4, notification);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android broadcast广播机制的使用
共27个文件
class:10个
xml:3个
java:3个
4星 · 超过85%的资源 需积分: 10 13 下载量 98 浏览量
2013-05-27
13:02:30
上传
评论
收藏 88KB ZIP 举报
温馨提示
简单的broadcast广播机制的使用,实现了通过动态注册广播和静态注册广播的方法,代码比较简单,通俗易懂。
资源推荐
资源详情
资源评论
收起资源包目录
Broadcast.zip (27个子文件)
Broadcast
.project 845B
proguard.cfg 1KB
src
com
jluzh
ex06
BroadDemo.java 4KB
MyBroadReceiver.java 474B
AndroidManifest.xml 880B
res
raw
midi077.mid 42KB
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
layout
main.xml 889B
values
strings.xml 166B
assets
gen
com
jluzh
ex06
R.java 935B
default.properties 362B
.classpath 280B
bin
resources.ap_ 52KB
Broadcast.apk 57KB
com
jluzh
ex06
R$layout.class 382B
BroadDemo$Broad.class 3KB
R$drawable.class 388B
R$attr.class 328B
R$raw.class 376B
R$id.class 435B
BroadDemo.class 3KB
R.class 543B
R$string.class 415B
MyBroadReceiver.class 535B
classes.dex 6KB
共 27 条
- 1
资源评论
- lhxfxx2014-01-15太简单了,适合刚学习的人。
云雾天
- 粉丝: 0
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功