有三种不同的情况:
1)用户启动应用程序,在其中导航,按下主页并再次单击应用程序图标以再次启动我们的应用程序.
2)用户启动应用程序,在其中导航,按回家,选择最近并单击应用程序以再次启动我们的应用程序.
3)用户启动应用程序,在其中导航,单击应用程序中的某些内容(带有链接的TextView),其中调用另一个应用程序(例如电子邮件)和用户单击后退按钮,这将我们带回到我们的应用程序.
我知道标志"clearTaskOnLaunch"标志,它解决了案例#1.
我知道标志"excludeFromRecents",它解决了案例#2(可能不是最用户友好的解决方案,但它的工作原理).
案例#3怎么样?我现在有一个解决方法.但是,我必须把它放在所有可以导致另一个应用程序的活动上.我想知道,是否有更好的方法来解决它(没有在所有这些活动中处理它).
这应该在应用程序级别处理.
对于API级别14,您可以在Application类中注册ActivityLifeCycleCallback
public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)
Run Code Online (Sandbox Code Playgroud)
您可以使用它,在应用程序级别知道哪些活动被销毁,暂停,恢复等等.每当活动暂停,没有创建/恢复新活动时,您应该清除活动堆栈,然后重新启动你的startActivity
如果您将SDK版本<14定位,则应实现自己的方法,以了解创建/恢复和暂停的活动,并在活动暂停时执行相同操作,而不创建/恢复新活动
| 归档时间: |
|
| 查看次数: |
3065 次 |
| 最近记录: |