启动通知后活动未关闭

时间:2011-12-14 22:39:18

标签: android

我在Android应用程序上遇到了奇怪的行为。当我打开我的应用程序时,我会看到我的DashboardActivity,然后我点击主页按钮或后退按钮,我的应用程序关闭。还行吧。然后我收到一条推送消息,并通过此推送消息创建通知。通知正常,我点击通知,然后使用以下代码打开我的活动:

Intent notificationIntent = new Intent(context, BookingOfferActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Bundle b = new Bundle();
b.putSerializable("booking", booking);
notificationIntent.putExtras(b);

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

然后我在这个BookingOfferActivity活动中执行一些任务并调用方法finish()以确保无论如何都将完成此活动。然后我再次打开我的应用程序,但没有看到DashboardActivity,我仍然看到BookingOfferActivity。

我尝试过这里提出的解决方案:

Prevent new activity instance after clicking on notification

但它不起作用。

有没有办法强制我的应用程序始终在DashboardActivity上打开?

由于

Ť

3 个答案:

答案 0 :(得分:0)

我完全不知道,但你可以尝试在onStop()方法中完成所有活动。 在onResume()方法中启动你的DashboardActivity。

答案 1 :(得分:0)

考虑到你正在调用finish()

,这是一种奇怪的行为

尝试设置

android:noHistory="true"
android:launchMode="singleInstance"
在BookingOfferActivity的清单中

答案 2 :(得分:0)

尝试从您的意图中删除SINGLE_TOP。 CLEAR_TOP应该是你想要的一切。

来自Android Developer文档

  

FLAG_ACTIVITY_SINGLE_TOP - >如果设置,则不会启动活动   它已经在历史堆栈的顶部运行。