Android 避免破坏活动

Android 避免破坏活动,android,android-activity,lifecycle,Android,Android Activity,Lifecycle,我有一个主活动,用户从中开始使用startActivityForResult执行多个活动。 这可能是一个外部应用程序(如条形码扫描仪)或一个内部活动(如mapview或日历等) 问题是,通过执行startActivityForResult我的主要活动被暂停,可能会被android系统终止。 有时,当用户在已启动的活动中停留很长时间时,就会发生这种情况,在关闭新活动后,主活动将被销毁,并且不会调用OnActivityResult侦听器 有没有办法告诉系统“不要破坏此暂停的活动” 编辑: 问题有点复

我有一个主活动,用户从中开始使用
startActivityForResult
执行多个活动。 这可能是一个外部应用程序(如条形码扫描仪)或一个内部活动(如mapview或日历等)

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

有没有办法告诉系统“不要破坏此暂停的活动”

编辑:

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

我有一个主活动(
extensedtabactivity
)和一个
最终公共类GlobalVars
GlobalVars中存储了大量变量或类,这些变量或类用于项目的所有活动,例如:

public static boolean system_initialized = false;
public static boolean system_Onforeground = true;
main.class OnCreate
方法中,我将system_初始化为
true
OnResume
方法中,我设置了
Onforeground=true
,在
onPause
中设置了
Onforeground=false
,在
OnDestroy
中设置了
initialized=false

如果我启动应用程序system_initialized and Onforeground将为true,如果我启动ActivityforResultinitialized将保持true,但Onforeground将设置为false

现在我有了一个BroatcastReceiver,它启动了android.intent.action.BOOT_,完成了并初始化了一个AlarmManager,其中一个服务是PendingEvent

现在,我使用该服务每分钟检查我是否必须在主要活动中执行某些操作。如果发生操作,服务将检查system_initialized=true(在GlobalVars中)是否为true。如果不是,服务将启动应用程序,否则服务将使用处理程序(在GlobalVars中)在主活动中调用Runnable

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


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

但是当你回到你的活动时,它将被重新创建。
你所需要做的就是使用
保存的
实例和其他方式保存活动的状态

您还可以在应用程序
onLowMemory
回调中进行检查

请按照SO上的链接进行操作。
这可能会有所帮助


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

您还可以在应用程序
onLowMemory
回调中进行检查

请按照SO上的链接进行操作。
这可能会有所帮助