gpt4 book ai didi

android - 在有 Intent 地启动 Activity 之前清除 Activity 堆栈

转载 作者:行者123 更新时间:2023-11-29 02:09:04 24 4
gpt4 key购买 nike

我正在为 Android 应用程序处理 C2DM 通知,我想在用户单击通知时打开我的应用程序。没问题,这很容易。问题是当应用程序启动时(点击通知后),如果之前打开了一些 Activity ,启动的 Activity 似乎被添加到实际的 Activity 堆栈中,关于我的应用程序的复杂性有什么问题(有有很多 Activity ,有些 Activity 有静态字段)。

要解决这个问题,2个解决方案就可以了:

1) 不要调用特定的 Activity ,而只是要求我的应用程序打开(比如当我单击主屏幕上的应用程序图标时:如果应用程序已关闭,则打开第一个 Activity ,或者只是将应用程序置于最前面如果已打开(但在后台))。

2) 清除所有 Activity 堆栈并启动特定 Activity 。

但是我没有成功地完成这两种解决方案中的一种。甚至使用 Intent 标志(如 http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP )。

谁能帮我解决这个问题?

谢谢

PS:抱歉我的英语不好,我来自比利时:-)

最佳答案

这不是您要求的,但您可以将属性 android:launchMode="singleTask" 添加到您将从此通知中调用的 Activity 中,它不会创建新 Activity 如果一个这个实例已经存在。

您也可以使用 ActivityManager.killBackgroundProcesses(String packageName) 来删除后台进程,但我从未尝试过,不建议这样做或使用 ChriZzZ 建议并稍微管理您的 Activity 更紧。

关于android - 在有 Intent 地启动 Activity 之前清除 Activity 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505977/

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