Трябва да внедря функция за известяване като GMAIL, т.е. ако екранът в момента е отворен, списъкът трябва да се опреснява автоматично и да не се получава известие. Ако приложението е затворено, получаваме известие. В GMAIL, ако сме във Входящи и пристигне нова поща, тя автоматично се добавя в горната част без известие и ако приложението не е отворено, получаваме известие за нова поща. Кодирах частта за уведомяване и тя работи добре, но единственото нещо е, че дори и да съм в текуща дейност, все още получавам известия, които се опитвам да спра.
По-долу е кодът от клас Intent за изпращане на известие
Intent listIntent = new Intent(this, ListActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ListActivity.class);
stackBuilder.addNextIntent(listIntent);
PendingIntent listPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("xxxx")
.setStyle(new NotificationCompat.BigTextStyle()
.bigText("Update List"))
.setContentText("Update List").setAutoCancel(true).setDefaults(Notification.DEFAULT_ALL).setWhen(System.currentTimeMillis());
builder.setContentIntent(listPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(NOTIFICATION_ID, builder.build());
Проучих много в мрежата и SO, но не получих подходящи насоки. Изглежда има решение от CommonsWare, но не искам да използвам външна библиотека. Освен това по време на проучването си открих, че да знам коя дейност е отгоре не е добра практика в производството, така че не мога да използвам и това, за да спра известяването, защото текущата ми дейност е отгоре. Моля за съвет.
knowing which activity is on top isn't a good practice to do in production
защо? има ли някакъв проблем? - person Pankaj Kumar   schedule 24.12.2014