任务中的Root活动被Android

时间:2015-09-10 21:30:29

标签: android android-studio android-activity android-5.0-lollipop

我的Android应用程序存在一些问题。当应用程序从后台到前台时,Android会从我的任务中杀死我的Root活动。

当我第一次启动时,启动器启动我的SplashScreen Activity来执行一些身份验证,并将用户重定向到LoginActivity或HomeActivity。

如果用户经过正确的身份验证,我会使用以下标志启动HomeActivity:Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK

之后,用户可以根据需要进行导航,所有startActivity都使用intentlaunchMode的默认配置,没有什么特别的。

所以,让我们说我们正在完成这项任务:

HomeActivity> UserActivity> FollowerActivity

此时,我点击主页按钮开始打开新的应用程序,如Facebook,Instagram,Slack,Skype,Twitter。然后终于从Button" Recent Apps"回到我的应用程序。应用程序显示任务中的最后一个活动 - > FollowerActivity。 但是,如果我点击后退按钮,而不是转到UserActivity,应用程序将关闭。 Android杀死了我之前的两个活动,HomeActivity和UserActivity。

在我的AndroidManifest中,HomeActivity有以下选项:

android:alwaysRetainTaskState="true"
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"

我尝试了一切,但我的Root Activity是HomeActivity被杀死了。 我不知道该怎么做,我尝试使用Intent的所有旗帜以及我可以放在<activity />的所有参数。

我还使用OnSaveInstanceState()在每个活动和片段中保存状态,从原始类型开始到可序列化对象的arraylist。

您知道如何解决我的问题吗?

编辑1: 当我开始在堆栈中有很多活动时,我得到Java Binder Transaction。我想我将可序列化对象的列表保存到我的Bundle savedInstanceState中。 它可能是我的堆栈中被杀活动的原因吗?

0 个答案:

没有答案