在Activity上调用finish()时从最近的应用程序列表中排除应用程序

时间:2017-02-11 01:24:33

标签: android android-activity android-service

我有一个在后台运行的服务,在某些时间段我使用通知创建通知,当用户点击通知时,它会打开一个Activity(SurveyForm)。我想在用户按下按钮但关闭后台服务时关闭该Activity。我在Activity中调用finish()方法,但不是完全关闭它,Application仍然存在于最近的应用程序列表中。

这是创建通知的代码。

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();
        }
    });

更新

我通过在清单文件中为相应的Activity指定下一个属性来解决问题。

  

机器人:excludeFromRecents = “真”

2 个答案:

答案 0 :(得分:2)

我通过在清单文件中为相应的Activity指定excludeFromRecents属性来解决问题。

  

机器人:excludeFromRecents ="真"

答案 1 :(得分:0)

致电finishAndRemoveTask()而非finish()