我正在开发一个Android应用程序,其中我想在通知栏中显示每条新通知的新消息。我能够在特定时间显示通知,但我想用不同的消息显示每个通知。
下面我粘贴了在指定时间显示两个通知的smaple代码。 我使用了Alarm manager类来显示通知。 的 MainActivity
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(formattedDate1));
calendar.set(Calendar.MONTH, 9);
calendar.set(Calendar.YEAR, 2013);
calendar.set(Calendar.DAY_OF_MONTH, 25);
calendar.set(Calendar.HOUR_OF_DAY, 13);
calendar.set(Calendar.MINUTE, 11);
calendar.set(Calendar.SECOND, 0);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
myIntent.putExtra("myIntent", "Notification1");
myIntent.setType("intent1");
pendingIntent1 = PendingIntent.getBroadcast(MainActivity.this, 0,
myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(),
pendingIntent1);
Calendar calendar_new = Calendar.getInstance();
// calendar_new.setTime(new Date(, month, day))
calendar_new.set(Calendar.HOUR_OF_DAY, 13);
calendar_new.set(Calendar.MINUTE, 12);
calendar_new.set(Calendar.SECOND, 0);
Intent myIntentnew = new Intent(MainActivity.this, MyReceiver.class);
myIntentnew.setType("intent2");
myIntentnew.putExtra("myIntentnew", "Notification2");
pendingIntent2 = PendingIntent.getBroadcast(MainActivity.this, 1,
myIntentnew, 0);
alarmManager.set(AlarmManager.RTC, calendar_new.getTimeInMillis(),
pendingIntent2);
} // end onCreate
通知服务
private NotificationManager mManager;
Notification notification;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
@SuppressWarnings("static-access")
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
mManager = (NotificationManager) this.getApplicationContext()
.getSystemService(
this.getApplicationContext().NOTIFICATION_SERVICE);
Intent intent1 = new Intent(this.getApplicationContext(),
MainActivity.class);
notification = new Notification(R.drawable.ic_launcher,
"This is a test message!", System.currentTimeMillis());
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(
this.getApplicationContext(), 0, intent1,
PendingIntent.FLAG_UPDATE_CURRENT);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(this.getApplicationContext(),
"We succeded", "hi!", pendingNotificationIntent);
mManager.notify(0, notification);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mManager.cancelAll();
}
如果有人可以帮我这个。提前致谢
答案 0 :(得分:1)
更改
mManager.notify(0, notification);
到
mManager.notify(count , notification);
其中计数每次都增加1。
mManager.notify(0, notification)
每次都替换消息
Intent serviceIntent = new Intent(YourService.class.getName())
serviceIntent.putExtra("UserID", "123456");
context.startService(serviceIntent);
当服务启动时,将调用onStartCommand()方法,因此在此方法中,您可以从intent对象中检索值(UserID),例如
public int onStartCommand (Intent intent, int flags, int startId){
String userID = intent.getStringExtra("UserID");
return START_STICKY;
}
答案 1 :(得分:1)
您可以更改此manager.notify(0,通知); to manager.notify((int)when,notification);
where when when = System.currentTimeMillis();