Получить локальное уведомление, когда приложение принудительно закрыто в Android

В приложении Facebook для Android мы получаем уведомления, когда приложение принудительно закрыто. Это работает, потому что реализовано push-уведомление. Но я реализовал локальное уведомление в своем приложении, и я хочу, чтобы мое приложение уведомляло, если приложение принудительно закрыто. так как я могу это реализовать.

        void showNotify()
        {
            CharSequence details = "Notification raised";
    int reqCode=0;
    Intent notificationIntent = new Intent(context,
            NotifyListActivity.class);
    // notificationIntent.putExtra("clicked", "Notification Clicked");
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
            | Intent.FLAG_ACTIVITY_SINGLE_TOP); // To open only one   activity
                                                // on launch.
    PendingIntent pIntent = PendingIntent.getActivity(context, reqCode,
            notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    NotificationManager nM = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder notify = new NotificationCompat.Builder(
            context);
    notify.setContentIntent(pIntent);
    notify.setSmallIcon(R.drawable.appicon);
    notify.setContentTitle("");
    notify.setContentText(details);
    notify.setAutoCancel(true);
    nM.notify(reqCode, notify.build());
    screenOn(context);
            }

person Amrit    schedule 26.06.2014    source источник


Ответы (2)


Я не думаю, что вы должны контролировать, закрыто ли ваше приложение принудительно, IMO нормально вести себя не так, как ожидалось, если ваше приложение было принудительно закрыто.

Сказав, что эти 2 вещи совершенно разные, когда вы получаете Push-уведомление, вы получаете сообщение из Интернета (или другого источника), а затем вы можете ответить на это сообщение, показывая локальное уведомление (на панели уведомлений), вам нужно будет способ вызвать ваше локальное уведомление для отображения (повторяющийся сигнал тревоги?), уведомления не могут запускаться сами по себе (или, по крайней мере, я не знаю, как это сделать).

person zozelfelfo    schedule 26.06.2014
comment
Нет, я использовал повторяющийся Аларам, но он не работает после принудительного закрытия. - person Amrit; 26.06.2014

Вы можете использовать это для обработки исключений: Рекомендации по обработке исключений Android? С этим вы может выполнять код при возникновении необработанного исключения. Также вы можете поймать их, но это, возможно, не интересно для вас.

А затем внутри UncaughtExceptionHandler я запускал службу переднего плана. Это необходимо, потому что приложение закроется. Я не проверял, скажите, получилось ли. Это будет onCreate для службы:

    @Override public void onCreate() {
       final NotificationCompat.Builder builder = new Builder(this);
       builder.setSmallIcon(R.drawable.icon_resource);
       builder.setContentTitle(getString(R.string.notification_title));
       builder.setTicker(getString(R.string.notification_ticker));
       builder.setContentText(getString(R.string.notification_content_text));

       final Intent notificationIntent = new Intent(this, Activity_TO_OPEN_ON_NOTIFICATION_CLICKED.class);

       final PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, 0);

       builder.setContentIntent(pi);

       final Notification notification = builder.build();

       startForeground(1234, notification);
       }
person Shyri    schedule 26.06.2014