2017-02-11 1 views
1

У меня есть служба, работающая в фоновом режиме, и в определенные периоды времени я создаю уведомления с уведомлением, и когда пользователь нажимает уведомление, он открывает Activity (SurveyForm). Я хочу закрыть эту активность, когда пользователь нажимает кнопку, но оставляет фоновый сервис запущенным. Я вызываю метод finish() внутри Activity, но вместо полного его закрытия приложение по-прежнему присутствует в списке последних приложений.За исключением приложения из недавнего списка приложений при вызове finish() в действии

Это код, который создает уведомление.

Intent notificationIntent = new Intent(this, SurveyForm.class); 
    notificationIntent.setAction(Constants.SURVEY_ACTION); 

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

    Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    Notification notification = new NotificationCompat.Builder(this) 
      .setContentTitle("Survey") 
      .setTicker("New Survey") 
      .setContentText("Please, answer the survey.") 
      .setSmallIcon(R.drawable.survey_notification_icon) 
      .setSound(alarmSound) 
      .setLights(0xff00ff00, 1000, 1000) 
      .setContentIntent(resultPendingIntent) 
      .setOngoing(true) 
      .build(); 
    notification.defaults = Notification.DEFAULT_VIBRATE; 

    mNotificationManager.notify(Constants.SURVEY_NOTIFICATION_ID, notification); 

И код кнопки следующее:

bSave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
      //Close the notification 
      nm.cancel(Constants.SURVEY_NOTIFICATION_ID); 

      //Close this Activity 
      finish(); 
     } 
    }); 

Update

Я решил эту проблему, указав следующее свойство в файле манифеста для соответствующей деятельности.

андроид: excludeFromRecents = «истинный»

+1

Что вы имеете в виду под "минимизировать"? Android не имеет понятия о «минимизации» приложения. – Karakuri

+1

@ Karakuri, сводя к минимуму, я имею в виду, что приложение скрыто, но все еще отображается в последнем списке приложений. – Enrique

+0

@ Enrique, Пожалуйста, разместите решение как ответ на вопрос, а затем примите то же самое. Это поможет другим людям лучше, а также заработает очки. –

ответ

2

Я решил эту проблему, задав свойство excludeFromRecents в файле манифеста для соответствующей деятельности.

андроид: excludeFromRecents = "истинный"

Смежные вопросы