0

单击按钮后,我的 Android 应用程序(应用程序 A)会启动另一个应用程序(例如应用程序 B)。

现在我想实现“自动启动”功能,其中应用程序 B 将在应用程序 A 启动后立即启动。为此,我创建了一个复选框并用于SharedPreferences存储复选框的值。然后,在我onCreate()的活动 A 方法中,我正在检查复选框的值SharedPreferences并启动应用程序 B,以防该值为“真”。

问题:

我面临的问题是,当用户退出“应用程序 B”(并返回应用程序 A)时onCreate(),应用程序 A 的再次被调用并且应用程序 B 再次打开。这引发了一个无限循环,在应用程序 B 退出时,用户返回应用程序 A 并再次进入应用程序 B。

我知道 onCreate() 被多次调用(当我们改变方向、键盘打开、Activity 进入后台并被系统杀死时),但是有什么干净的方法吗?

重申一下,如果在应用程序 A 中选中“自动启动”复选框,我的要求是从应用程序 A 启动应用程序 B。

4

1 回答 1

1

我的建议是onPause在应用程序 A 中使用活动的方法并在那里设置一个标志“应用程序 B 被调用”。然后,如果设置了此标志,则不要在应用程序 A 中onCreate的活动中调用应用程序 B 并取消设置该标志。

如果应用程序 B 在前台的时间过长,应用程序 A 可能会被系统挂起并重置标志。SharedPreferences在这种情况下,将标志存储在一些持久性存储(例如)中可能是个好主意。

编辑还有一件事:只有在活动暂停时才应设置标志onPause,因为将显示另一个应用程序(这很容易确定,因为一切都发生在同一个类中)。

于 2013-07-07T08:22:08.983 回答