android - 为通知的未决 Intent 设置不同的 Activity

标签 android android-activity notifications android-pendingintent

我目前面临着将两个不同 Activity 的待处理操作设置为通知的问题。

我有一个 ParentActivity 和一个 ChildActivity。如果当前正在运行或暂停,我想在通知点击时打开 ChildActivity,否则启动 ParentActivity。

我试过这个:

 .........

    Intent resultIntent = new Intent(this, ChildActivity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    stackBuilder.addParentStack(ParentActivity.class);
    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    .............

以上对我不起作用。每次 ChildActivity 在通知点击时启动。

而且正如法鲁克回答的那样,我不想要这个。通过检查 ChildActivity 的当前状态来创建通知的待定​​ Intent 将不起作用。 假设在 ChildActivity 运行时创建了通知,但在创建通知后,用户终止了该应用程序。因此,在终止应用程序后,如果用户单击通知,则 ChildActivity 将启动。我不想要那个。我想如果 ChildActivity 没有运行或暂停,那么应该启动 ParentActivity。

我怎样才能做到这一点? 请帮忙。

最佳答案

虽然可能有多种方法可以实现这一点,但以下是我能想到的一种。

首先,您应该通过此链接了解 ChildActivity 是否处于 Activity 状态

Check whether activity is active

将其存储在某个变量 childActive 中,然后您可以初始化不同的 notificationIntents 检查值,而无需使用任务 TaskStackBuilder。

例如;

Intent notificationIntent = null;
if(childActive)
    notificationIntent = new Intent(context, ChildActivity.class);
else
    notificationIntent = new Intent(context, ParentActivity.class);

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

关于android - 为通知的未决 Intent 设置不同的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996326/

相关文章:

java - 如何将下载的图像从一个 Activity 传递到下一个 Activity ?

android - MPAndroidChart 条形图值

c# - 在 MVC 4 中返回下载在 Android 上不起作用

android - 互联网检查连接不工作 android.net.isConected()

java - 如何从android中的 Activity 刷新 fragment ?

ios - HTTP 请求作为 iOS 中本地通知的后台任务

android模拟器只在eclipse(ubuntu 11.10)中显示字符串 "android"

java - 如何更改按钮单击 android 上的 Activity

android - 多个通知,仅在 Android 中显示第一个

android - 从 Android 通知传递数据