我的Android应用程序(应用程序A)在点击按钮时启动另一个应用程序(比如应用程序B)。
现在我想实现“自动启动”功能,其中应用程序A将在启动应用程序A后立即启动。
为此,我创建了一个复选框,并使用SharedPreferences
来存储复选框的值。
然后,在我的onCreate()
活动A方法中,我正在检查SharedPreferences
中复选框的值,并在值为“true”的情况下启动应用程序B.
问题:
我面临的问题是,当用户退出“应用程序B”(并返回到应用程序A)时,将再次调用应用程序A的onCreate()
,并再次打开应用程序B.这将引发无限循环,在应用程序B退出时,用户返回到应用程序A并再次转到应用程序B.
我知道onCreate()被多次调用(当我们改变方向,键盘打开,Activity进入后台并被系统杀死),但有没有干净的方法呢?
重申一下,如果在应用程序A中选中“自动启动”复选框,我的要求是从应用程序A启动应用程序B.
答案 0 :(得分:1)
我的建议是使用应用程序A中活动的方法onPause
并在那里设置一个标志“应用程序B被调用”。然后,如果设置了此标志,则不要在应用程序A中的活动的onCreate
中调用应用程序B并取消设置该标志。
如果应用程序B在前台应用程序中太长,则系统可能会挂起A,并且将重置该标志。在这种情况下,最好将标志存储在某个持久存储器中(例如SharedPreferences
)。
编辑还有一件事:仅当活动暂停时才应在onPause
设置标志,因为将显示其他应用程序(这将很容易确定,因为一切发生在同一个班级。)