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