Могу ли я создать несколько уведомлений в строке состояния из одной программы (Служба) или мне нужно создать новое действие с кликабельным списком (например, LinearLayout
) объектов?
Вы, безусловно, можете создать несколько уведомлений от службы или приложения, но вы должны спросить себя, что в качестве пользователя вы хотите, чтобы приложение отправляло вам спам. Я использую одно уведомление в своей удаленной службе и повторно использую одно и то же уведомление, просто обновляя его содержимое. Вот пример:
public void onPlaybackStarted(int currentTrack, Show show) {
notificationManager.cancel(R.layout.notification_playing);
notification.tickerText = show.getTracks().get(currentTrack).getName();
if (notificationView == null) {
notificationView = new RemoteViews(getPackageName(), R.layout.notification_playing);
}
notificationView.setTextViewText(R.id.notification_playing_track, show.getTracks().get(currentTrack).getName());
notificationView.setTextViewText(R.id.notification_playing_band, show.getArtist());
notificationView.setTextViewText(R.id.notification_playing_date, show.getDate());
Intent intent = new Intent(TrackPlayerService.this, ListTracksActivity.class)
.putExtra("track", currentTrack)
.putExtra("artist", show.getArtist())
.putExtra("date", show.getDate())
.putExtra("location", show.getLocation())
.putExtra("venue", show.getVenue())
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
notification.contentView = notificationView;
notification.contentIntent = PendingIntent.getActivity(TrackPlayerService.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
notification.flags |= Notification.FLAG_ONGOING_EVENT;
notificationManager.notify(R.layout.notification_playing, notification);
}
Если ваши уведомления не вращаются, это означает, что вам нужно уведомить пользователя о трех или четырех разных вещах одновременно, а затем получить уведомление, открывающее ListActivity, будет лучшим способом.