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

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,有缘我们还会再见!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: