gpt4 book ai didi

java - 带通知的 Activity 导航

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:00 27 4
gpt4 key购买 nike

我目前正在编写一个 Android 应用程序,是时候实现通知了。我将在这里查看的三个 Activity 是 MainActivity、MessageListActivity 和 MessageActivity。

这些采用简单的 A > B > C 格式。将 B 的父级设置为 A,将 C 的父级设置为 B。正常导航工作正常,并且按预期执行所有操作。以下是 list :

    <activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>

<activity
android:name=".activities.MessageListActivity"
android:icon="@drawable/ic_action_email"
android:label="@string/title_activity_text"
android:launchMode="singleTop"
android:parentActivityName=".activities.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>

<activity
android:name=".activities.MessageActivity"
android:icon="@drawable/ic_action_read"
android:label="@string/title_activity_text_message"
android:parentActivityName=".activities.MessageListActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MessageListActivity" />
</activity>

问题是现在我正在尝试实现通知,如果我退出应用程序,它会作为服务运行,因此我仍然可以接收消息。当收到新消息时,会显示一个弹出窗口,我想单击它,显示 MessageActivity (C),然后当按下向上或返回时返回到 MessageListActivity (B)。然而,我打开通知,MessageActivity (C) 按预期显示,但当我按下向上或返回时,它会将我带到 MainActivity (A)。此时它应该返回到 MessageListActivity (B)!

澄清一下:-

  • 出现通知
  • 用户点击它
  • C 已打开
  • 用户按后退或向上键
  • B 现在应该打开,但 A 却打开。

我在通知中创建了一个返回堆栈,如下所示:

    Intent resultIntent = new Intent(NurseCallApplication.getContext(), MessageActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(NurseCallApplication.getContext());
stackBuilder.addParentStack(MessageActivity.class);
stackBuilder.addNextIntent(resultIntent);

resultIntent.putExtra("messageObject", message);
PendingIntent resultPendingIntent = PendingIntent.getActivity(NurseCallApplication.getContext(), 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

在 MessageActivity (C) 的向上和后退按钮中,我得到了:

NavUtils.navigateUpFromSameTask(this);

在这一点上,我真的只是把所有的东西放在一起试图弄清楚,所以如果有不必要的部分,请原谅我!任何帮助将不胜感激!谢谢!

最佳答案

我认为您的错误可以通过以下方式解决:

// B -> C    when user clicks any notification

stackBuilder.addParentStack(MessageListActivity.class);

关于java - 带通知的 Activity 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29387044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com