放置“自动启动”另一个活动代码的最佳位置?

时间:2013-07-07 08:12:17

标签: android

我的Android应用程序(应用程序A)在点击按钮时启动另一个应用程序(比如应用程序B)

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

问题:

我面临的问题是,当用户退出“应用程序B”(并返回到应用程序A)时,将再次调用应用程序A的onCreate(),并再次打开应用程序B.这将引发无限循环,在应用程序B退出时,用户返回到应用程序A并再次转到应用程序B.

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

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

1 个答案:

答案 0 :(得分:1)

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

如果应用程序B在前台应用程序中太长,则系统可能会挂起A,并且将重置该标志。在这种情况下,最好将标志存储在某个持久存储器中(例如SharedPreferences)。

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