我在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上打开?
由于
Ť
答案 0 :(得分:0)
我完全不知道,但你可以尝试在onStop()方法中完成所有活动。 在onResume()方法中启动你的DashboardActivity。
答案 1 :(得分:0)
考虑到你正在调用finish()
,这是一种奇怪的行为尝试设置
android:noHistory="true"
android:launchMode="singleInstance"
答案 2 :(得分:0)
尝试从您的意图中删除SINGLE_TOP。 CLEAR_TOP应该是你想要的一切。
来自Android Developer文档
FLAG_ACTIVITY_SINGLE_TOP - >如果设置,则不会启动活动 它已经在历史堆栈的顶部运行。