设定不同的活动,以供待通知意图



我目前面临着为两种不同活动设定待定行动以通知的问题。

我有父母的行为和育儿。我想在通知时打开育儿,如果当前正在运行或暂停,否则请开始父母。

我尝试了:

 .........
    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);
    .............

上面对我不起作用。每次育儿时,请单击通知。

,也随着法鲁克的回答,我不想要这个。通过检查育儿的当前状态来创建通知的未决意图将无效。假设在育儿运行时创建的通知,但在创建通知后,用户杀死了该应用程序。因此,杀死该应用程序后,如果用户单击通知,则育儿将开始。我不要那个。我想要如果没有育儿或暂停育儿,则应开始父母。

我该如何实现?请帮忙。

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

首先,您应该通过此链接获得育儿是否活跃

检查活动是否活动

将其存储在某些可变的童话级中,然后您可以初始化不同的通知者检查值,而无需使用任务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);

让您的 Notification启动一个简单的调度Activity。此ActivityonCreate()中执行以下操作:

super.onCreate(...);
if (ChildActivity.running) {
    // ChildActivity is running, so redirect to it
    Intent childIntent = new Intent(this, ChildActivity.class);
    // Add necessary flags, maybe FLAG_ACTIVITY_CLEAR_TOP, it depends what the rest of your app looks like
    childIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(childIntent);
} else {
    // Child is not running, so redirect to parent
    Intent parentIntent = new Intent(this, ParentIntent.class);
    // Add necessary flags, maybe FLAG_ACTIVITY_CLEAR_TOP, it depends what the rest of your app looks like
    parentIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(parentIntent);
}
finish();

ChildActivity中执行此操作:

public static boolean running; // Set when this Activity is active

ChildActivity.onCreate()中添加以下内容:

running = true;

ChildActivity.onDestroy()中添加以下内容:

running = false;

相关内容

  • 没有找到相关文章

最新更新