我有一个主要活动,用户从中开始几个活动startActivityForResult
。 这可能是一个外部应用程序,如xing条形码扫描仪或interview活动,如mapview或日历等。避免破坏活动
问题是,通过执行startActivityForResult
我的主要活动已暂停,并可能由android系统终止。 Somtimes,当用户在开始的活动中停留很长时间时,会发生这种情况,并且在关闭新活动后,主活动将被销毁,并且不会调用OnActivityResult监听器。
有没有办法告诉系统“不要销毁这个暂停的活动”?
编辑:
的问题是有点复杂,我怕我在我的应用程序的整个achitecture犯了不少错误。我会尽量解释我做了什么:
我有一个主要活动(extends TabActivity
)和GlobalVars一个final public class GlobalVars
是存储大量的变量或类,由项目如所有活动使用。 :
public static boolean system_initialized = false;
public static boolean system_Onforeground = true;
在
main.class OnCreate
方法
,我设置system_initialized到true
在OnResume
方法我设置Onforeground = true
,在设置Onforeground = false
和OnDestroy
设置initialized = false
如果我启动应用程序system_initialized和Onforeground将是真实的,如果我开始ActivityforResult
初始化将保持为真,但Onforeground将被设置为false。
现在我有一个BroatcastReceiver,启动android.intent.action.BOOT_COMPLETED
并初始化一个带有服务的Alamrmmanager作为pendingIntent。
现在我使用该服务来检查每分钟是否需要在主要活动中进行一些操作。如果发生操作,服务会检查system_initialized = true(在GlobalVars中)是否启动应用程序,否则服务将使用处理程序(在GlobalVars中)调用主活动中的Runnable。
这很好,如果主Activity正在运行,则可执行文件将被执行并发生某些事情,如果用户启动了ActivityforResult
服务意识到主要活动不在onForeground上并在后台执行某些操作。但是,如果主要活动被破坏,服务将重新启动主要活动,我不希望那^^我知道,很奇怪,但我不知道如何以其他方式实现我需要的东西。 ..