如何在不关闭先前活动的情况下从通知中打开对话框样式的活动?

Posted

技术标签:

【中文标题】如何在不关闭先前活动的情况下从通知中打开对话框样式的活动?【英文标题】:How to open dialog styled activity from notification without previous activity closing? 【发布时间】:2013-04-04 19:34:19 【问题描述】:
    我有一个带有对话框样式的 Activity,因此它可以在上一个 Activity 之上直观地打开。 我有一个通知,它打开了这个活动,如下所示:
Intent intent = new Intent(this, CalcActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); ((NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE)).notify(0, builder.build());

问题是当用户点击我的通知时,之前的可见活动关闭,主屏幕出现,我的对话框显示在主屏幕顶部。如何防止关闭以前的活动?请注意,以前的活动可能不是来自我的应用。

【问题讨论】:

您尝试过不同的 PendingIntent 标志吗?只是猜测...... 尝试无效。很多标志和手动搜索正确的组合是一种矫枉过正。通过谷歌搜索,但所有主题都集中在自己的活动堆栈上,这很容易管理。我有另一个应用程序,它作为当前应用程序顶部的对话框打开,但它正在回复当前应用程序生成的意图,所以那里没有问题。 【参考方案1】:

使用 Intent 如下:

Intent 意图 = new Intent(this,MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

androidManifest.xml注册活动并使用主题为dialog

<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.Dialog"/>

【讨论】:

以上是关于如何在不关闭先前活动的情况下从通知中打开对话框样式的活动?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不与 MainActivity 交互的情况下从通知中打开片段页面?

在 Android 11 上,如何在不实际点击通知的情况下从通知更新启动 Activity

如何在程序启动后在不打开控制台的情况下从批处理文件运行程序?

如何清除从 Android 中点击通知打开的先前活动?

如何在不使用 sudo 的情况下从终端窗口关闭 Internet 连接?

如何在不使用 JCL 中的 XSUM 的情况下从输入文件中删除重复项并将重复项写入文件? [关闭]