第二種BroadcastReceiver的使用方法

 

1,主界面類的實現:

public class ActivityMain extends Activity {

 public static final int ITEM0 = Menu.FIRST;
 public static final int ITEM1 = Menu.FIRST + 1;

 static final String ACTION_1 = "com.eoeandroid.action.NEW_BROADCAST_1";
 static final String ACTION_2 = "com.eoeandroid.action.NEW_BROADCAST_2";

 @Override
 protected void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.main);

 }

 public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  menu.add(0, ITEM0, 0, "顯示Notification");
  menu.add(0, ITEM1, 0, "清除Notification");
  menu.findItem(ITEM1);
  return true;
 }

 public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
  case ITEM0:
   actionClickMenuItem1();
   break;
  case ITEM1:
   actionClickMenuItem2();
   break;

  }
  return true;
 }


 private void actionClickMenuItem1() {
  Intent intent = new Intent(ACTION_1);//生成Intent對象 參數爲action(自定義的)
  sendBroadcast(intent);//廣播Intent
 }


 private void actionClickMenuItem2() {
  Intent intent = new Intent(ACTION_2);
  sendBroadcast(intent);

 }

}

2.在AndroidManifest.xml的application 中註冊:

<receiver android:name="EoeAndroidReceiver1">
   <intent-filter>
    <action
     android:name="com.eoeandroid.action.NEW_BROADCAST_1"/>
   </intent-filter>
  </receiver>
  <receiver android:name="EoeAndroidReceiver2">
   <intent-filter>
    <action
     android:name="com.eoeandroid.action.NEW_BROADCAST_2"/>
   </intent-filter>
  </receiver>

3,負責2種廣播接收類

一:

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);
 }
}

二:

import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

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);
 
 }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章