【发布时间】:2014-05-14 03:23:17
【问题描述】:
如何从我的应用程序中以编程方式退出我的应用程序?我有一个退出按钮,它会弹出一个对话框,提示用户确认退出。后退按钮做同样的事情。这通常有效。但是,当我收到某些事件并且用户点击通知时,我也会向我的 MainActivity 发起意图。我注意到,在这种情况下,当意图启动,然后用户尝试退出时,应用程序并没有退出,而是似乎回到了前一个实例。如果我点击 3 个通知将 3 个 Intent 返回到 MainActivity,我意识到我需要退出应用程序 3 次才能返回主屏幕。
下面是我的退出代码:
private AlertDialog alert;
if (alert != null) {
if (alert.isShowing()) {
alert.dismiss();
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Exit");
builder.setMessage("Are you sure you want to exit?").setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
getActivity().finish();
System.exit(0);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert = builder.create();
alert.show();
这是我的通知/意图代码
Intent launchIntent;
launchIntent = new Intent(context, MainActivity.class);
launchIntent.putExtra("myType", type);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder noti = new NotificationCompat.Builder(
context).setContentTitle(context.getResources().getString(R.string.app_name))
.setContentText(notificationMessage)
.setSmallIcon(R.drawable.ic_stat_notify)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setWhen(System.currentTimeMillis())
.setDefaults(Notification.DEFAULT_ALL);
notificationManager.notify(notifyId, noti.build());
【问题讨论】:
标签: android android-intent exit android-notifications