Android周学习Step By Step(9)--Intent之广播(完)
2011-06-30 23:56
453 查看
通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的BroadcastReceiver。
通过new Intent(ACTION_1)新建Action为ACTION_1的Intent。
通过sendBroadcast(intent)将这个intent进行广播。代码如下
ActivityMain代码:
package com.eoeandroid.broadcastReceiver;
[code]import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class EoeAndroidReceiver2 extends BroadcastReceiver {
Context context;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context = context;
DeleteNotification();
}
private void DeleteNotification() {
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
notificationManager.cancel(EoeAndroidReceiver1.NOTIFICATION_ID);
}
}
[/code]
当单击MENU的第一项后,程序执行到EoeAndroidReceiver1,通过OnRecievie方法将一个Notification显示在了状态栏中。其中showNotification()负责显示一个Notification。代码如下:
EoeAndroidReceiver1代码
package com.eoeandroid.broadcastReceiver;
[code]import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class EoeAndroidReceiver1 extends BroadcastReceiver {
Context context;
public static int NOTIFICATION_ID = 21321;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
showNotification();
}
private void showNotification() {
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.icon,
"在EoeAndroidReceiver1中", System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, ActivityMain.class), 0);
notification.setLatestEventInfo(context, "在EoeAndroidReceiver1中", null,
contentIntent);
notificationManager.notify(NOTIFICATION_ID, notification);
}
}
[/code]
单击第二个按钮后程序开始广播,这个广播被EoeAndroidReceiver2截获然后开始执行EoeAndroidReceiver2里的OnReceive方法,其中DeleteNotification()方法负责将刚才生成的Notification从状态栏中删除。代码如下:
EoeAndroidReceiver2代码
package com.eoeandroid.broadcastReceiver;
[code]import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class EoeAndroidReceiver2 extends BroadcastReceiver {
Context context;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context = context;
DeleteNotification();
}
private void DeleteNotification() {
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
notificationManager.cancel(EoeAndroidReceiver1.NOTIFICATION_ID);
}
}
[/code]
Android学习到此告一段落,经过一周的学习(严格的说学习的时间外加写论文的时间是一周,总结、写博客的时间远远大于一周)只能对Android有个大致的了解,还有很多方面由于时间的原因不能够深入学习,甚至很多都没有接触到,以后有时间再学习吧。
Android,有缘我们还会再见!
相关文章推荐
- Android周学习Step By Step(9)--Intent之广播(完)
- Android周学习Step By Step(8)--Intent之启动新的Activity
- Android周学习Step By Step(8)--Intent之启动新的Activity
- Android周学习Step By Step(3)--应用工程文件组成
- Android周学习Step By Step(6)--Android的数据库SQLite
- Android周学习Step By Step(3)--应用工程文件组成
- 学习Android广播之动作intent.getAction与对应的字符串常量(找不到动作常量时可用)
- android学习step by step.
- Android周学习Step By Step(4)--界面布局
- Android周学习Step By Step(5)--常用widget组件
- Android周学习Step By Step(5)--常用widget组件
- Android周学习Step By Step(6)--Android的数据库SQLite
- Mars Android视频学习笔记——01_21/22_广播机制
- lua学习笔记 1 android 调用Lua, Lua脚本中启动Intent
- Android开发学习笔记:Intent的简介以及属性的详解
- android.intent.action.MEDIA_MOUNTED广播无法收到的问题
- Android学习之本地广播的使用
- Android项目之HomeHealth基础学习3:Intent使用Component
- 【Android学习札记】Intent详解
- Android学习之Intent使用