0

我正在开发一个 android 应用程序,我想在通知栏中显示一条新消息,其中包含每个新通知。我可以在特定时间显示通知,但我想用不同的消息显示每个通知。

下面我粘贴在指定时间显示两个通知的示例代码。我使用了警报管理器类来显示通知。 主要活动

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

如果有人可以帮助我解决这个问题。提前致谢

4

2 回答 2

1

改变

 mManager.notify(0, notification); 

  mManager.notify(count , notification);

其中 count 每次增加 1 。

   mManager.notify(0, notification) 

每次更换消息

   Intent serviceIntent = new Intent(YourService.class.getName())
   serviceIntent.putExtra("UserID", "123456");
   context.startService(serviceIntent);

当服务启动时,它的 onStartCommand() 方法将被调用,因此在此方法中,您可以从意图对象中检索值 (UserID),例如

public int onStartCommand (Intent intent, int flags, int startId){

String userID = intent.getStringExtra("UserID");

return START_STICKY;
  }
于 2013-10-25T11:24:41.537 回答
1

您可以更改此 mManager.notify(0, notification); 到 mManager.notify((int) when, notification);

当 = System.currentTimeMillis();

于 2013-10-25T12:06:21.093 回答