通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的BroadcastReceiver。
通过new Intent(ACTION_1)新建Action为ACTION_1的Intent。
通过sendBroadcast(intent)将这个intent进行广播。代码如下
ActivityMain代码:
1: package com.eoeandroid.broadcastReceiver;2: import android.app.NotificationManager;3: import android.content.BroadcastReceiver;4: import android.content.Context;5: import android.content.Intent;6: public class EoeAndroidReceiver2 extends BroadcastReceiver {7: Context context;8: @Override9: public void onReceive(Context context, Intent intent) {10: // TODO Auto-generated method stub11: this.context = context;12: DeleteNotification();13: }14: private void DeleteNotification() {15: NotificationManager notificationManager = (NotificationManager) context16: .getSystemService(android.content.Context.NOTIFICATION_SERVICE);17: notificationManager.cancel(EoeAndroidReceiver1.NOTIFICATION_ID);18:19: }20: }当单击MENU的第一项后,程序执行到EoeAndroidReceiver1,通过OnRecievie方法将一个Notification显示在了状态栏中。其中showNotification()负责显示一个Notification。代码如下:
EoeAndroidReceiver1代码
1: package com.eoeandroid.broadcastReceiver;2: import android.app.Notification;3: import android.app.NotificationManager;4: import android.app.PendingIntent;5: import android.content.BroadcastReceiver;6: import android.content.Context;7: import android.content.Intent;8: public class EoeAndroidReceiver1 extends BroadcastReceiver {9: Context context;10: public static int NOTIFICATION_ID = 21321;11: @Override12: public void onReceive(Context context, Intent intent) {13: this.context = context;14: showNotification();15: }16: private void showNotification() {17: NotificationManager notificationManager = (NotificationManager) context18: .getSystemService(android.content.Context.NOTIFICATION_SERVICE);19: Notification notification = new Notification(R.drawable.icon,20: "在EoeAndroidReceiver1中", System.currentTimeMillis());21: PendingIntent contentIntent = PendingIntent.getActivity(context, 0,22: new Intent(context, ActivityMain.class), 0);23: notification.setLatestEventInfo(context, "在EoeAndroidReceiver1中", null,24: contentIntent);25: notificationManager.notify(NOTIFICATION_ID, notification);26: }27: }单击第二个按钮后程序开始广播,这个广播被EoeAndroidReceiver2截获然后开始执行EoeAndroidReceiver2里的OnReceive方法,其中DeleteNotification()方法负责将刚才生成的Notification从状态栏中删除。代码如下:
1: package com.eoeandroid.broadcastReceiver;2: import android.app.NotificationManager;3: import android.content.BroadcastReceiver;4: import android.content.Context;5: import android.content.Intent;6: public class EoeAndroidReceiver2 extends BroadcastReceiver {7: Context context;8: @Override9: public void onReceive(Context context, Intent intent) {10: // TODO Auto-generated method stub11: this.context = context;12: DeleteNotification();13: }14: private void DeleteNotification() {15: NotificationManager notificationManager = (NotificationManager) context16: .getSystemService(android.content.Context.NOTIFICATION_SERVICE);17: notificationManager.cancel(EoeAndroidReceiver1.NOTIFICATION_ID);18: }19: }
Android学习到此告一段落,经过一周的学习(严格的说学习的时间外加写论文的时间是一周,总结、写博客的时间远远大于一周)只能对Android有个大致的了解,还有很多方面由于时间的原因不能够深入学习,甚至很多都没有接触到,以后有时间再学习吧。
Android,有缘我们还会再见!
没有评论:
发表评论