在 Activity 调用 finish() 时从最近的应用程序列表中排除该应用程序
Excluding the application from recent app list on invoking finish() on Activity
我在后台有一个服务 运行,在某些时间段我使用 Notification 创建通知,当用户单击通知时,它会打开一个 Activity (SurveyForm)。我想在用户按下按钮但离开后台服务 运行 时关闭 Activity。我在 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();
}
});
更新
我已经通过在清单文件中为相应的 Activity 指定下一个 属性 来解决问题。
android:excludeFromRecents="true"
我已经通过在清单文件中为相应的 Activity.
指定 excludeFromRecents 属性 来解决问题
android:excludeFromRecents="true"
调用 finishAndRemoveTask()
而不是 finish()
我在后台有一个服务 运行,在某些时间段我使用 Notification 创建通知,当用户单击通知时,它会打开一个 Activity (SurveyForm)。我想在用户按下按钮但离开后台服务 运行 时关闭 Activity。我在 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();
}
});
更新
我已经通过在清单文件中为相应的 Activity 指定下一个 属性 来解决问题。
android:excludeFromRecents="true"
我已经通过在清单文件中为相应的 Activity.
指定 excludeFromRecents 属性 来解决问题android:excludeFromRecents="true"
调用 finishAndRemoveTask()
而不是 finish()