У меня есть служба, которая очищает веб-сайт для данных, а затем, при необходимости, уведомляет пользователя.
Проблема, с которой я сталкиваюсь, заключается в том, что уведомления исчезают, как только служба закрывается (, что может быть мгновенно ). Приведенный ниже код — это весь код уведомления, который есть в приложении. Я не вводил код для отмены уведомлений.
public static void CreateNotificationCompat(int notificationID, String link, String title, String text, Context ctx)
{
Intent notificationIntent = new Intent("android.intent.action.VIEW", Uri.parse(link));
PendingIntent contentIntent = PendingIntent.getActivity(ctx.getApplicationContext(), 0, notificationIntent, 0);
NotificationManager nm = (NotificationManager) ctx
.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx);
Resources res = ctx.getResources();
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.notify_icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(text)
.setAutoCancel(false);
Notification n = builder.getNotification();
nm.notify(notificationID, n);
}
Если это имеет какое-то значение, (почти уверен, что нет, )здесь я использую контекст приложения.
Мои службы периодически запускаются, обрабатывают веб-сайт, уведомляют при необходимости и затем закрываются.
В конце моей службы вместо того, чтобы просто вызывать stopSelf (), я сплю примерно 30 секунд, а затем вызываю stopSelf (). Затем уведомление остается на 30 секунд, а затем исчезает. Когда уведомления исчезают, в logcat не появляется ничего важного.
Я пока смог протестировать только с помощью ICS.