gpt4 book ai didi

android - 避免破坏 Activity

转载 作者:行者123 更新时间:2023-11-30 04:11:25 25 4
gpt4 key购买 nike

我有一个主要 Activity ,用户可以从该 Activity 开始多个 Activity startActivityForResult 。这可能是像 xing 条形码扫描器这样的外部应用程序,也可能是像 map View 或日历等内部 Activity 。

问题是,通过执行 startActivityForResult,我的主要 Activity 被暂停并且可能被 android 系统终止。有时,当用户在启动的 Activity 中停留很长时间时,会发生这种情况,在关闭新 Activity 后,主 Activity 将被销毁,并且不会调用 OnActivityResult 监听器。

有没有办法告诉系统“不要破坏这个暂停的 Activity ”?

edit:

问题有点复杂,我担心我在我的应用程序的整个架构中犯了很多错误。我将尝试解释我所做的事情:

我有一个主要 Activity (extends TabActivity)和一个final public class GlobalVars在 GlobalVars 中存储了许多变量或类,它们被项目的所有 Activity 使用,例如。 :

public static boolean system_initialized = false;
public static boolean system_Onforeground = true;

main.class OnCreate 方法中,我将 system_initialized 设置为 trueOnResume 方法中我设置了 Onforeground = true ,在 onPause 中设置了 Onforeground = false 并且在 OnDestroy 已设置 initialized = false

如果我启动应用程序 system_initialized 并且 Onforeground 将为 true,如果我启动 ActivityforResult initialized 将保持为 true,但 Onforeground 将设置为 false。

现在我有一个 BroatcastReceiver 启动 android.intent.action.BOOT_COMPLETED 并用一个服务作为 pendingIntent 初始化一个 Alamrmmanager。

现在我使用该服务每分钟检查一次我是否必须在主要 Activity 中做某事。如果发生操作,服务会检查 system_initialized = true(在 GlobalVars 中),如果没有,服务会启动应用程序,否则服务会使用处理程序(在 GlobalVars 中)调用主 Activity 中的 Runnable。

这很有效,如果主 Activity 正在运行,runnable 将被执行并发生一些事情,如果用户启动了 ActivityforResult 服务意识到主 Activity 不在前台并做一些事情在后台。但是如果主要 Activity 被销毁,服务将重新启动主要 Activity ,我不希望这样 ^^

我知道,很奇怪,但我不知道如何以其他方式实现我需要的东西......

最佳答案

但是当您返回您的 Activity 时,它将被重新创建。
您需要做的就是使用 onSaved 实例和其他方式保存您的 Activity 状态。

您还可以在您的应用 onLowMemory 回调中进行检查。

请点击 SO 上的链接。
它可能会有帮助。

Handling DVM killing your activity

关于android - 避免破坏 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813580/

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