【发布时间】:2016-06-08 19:20:59
【问题描述】:
在我的应用中,我有一个 MainActivity 和一个 TimerActivity。 在 TimerActivity 的正常情况下,设备后退按钮和 ActionBar 的向上按钮按应有的方式工作 - 它们从 TimerActivity 引导到 MainActivity。但是当我通过单击我的应用程序的通知打开 TimerActivity 时,后退按钮会导致主屏幕而不是 MainActivity。 我希望两个后退按钮(设备和 ActionBar 的向上按钮)始终打开 MainActivity - 除非用户当然在 MainActivity 中,在这种情况下后退按钮应该关闭 MainActivity。当您通过通知打开活动时,这就是 Gmail 和 Google Drive 应用程序的工作方式,这是最有意义的。
以下是我的通知打开活动的方式:
Notification timerNotification;
mBuilder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(ongoingNotificationIcon)
.setContentTitle(ongoingNotificationContentTitle)
.setContentText(ongoingNotificationContentText)
.setTicker(ongoingNotificationTicker)
.setPriority(99)
.setOngoing(true);
Intent resultIntent = new Intent(this, TimerActivity.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(
this, 0, resultIntent, PendingIntent.FLAG_CANCEL_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
timerNotification = mBuilder.build();
startForeground(MyApplication.NOTIFICATION_ID, timerNotification);
我尝试像这样覆盖 TimerActivity 中的后退按钮:
public void onBackPressed() {
Intent intent_main = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent_main);
}
但随后再次按下 MainActivity 上的后退按钮会将用户返回到 TimerActivity(因此用户处于循环中),而不是退出应用程序,这是所需的行为。此外,onBackPressed() 不会影响 ActionBar 的向上按钮。
【问题讨论】:
标签: android