我遇到了一个问题 - 清除活动历史记录。我的问题出现的地方有以下后果:
A(SplashScreen)->B(GuestScreen)->C(Screen for signed users)->Press Home Button->A->B->Press Back Button->C->Press Back BUtton->B->Press Back Button->exit from the app.
我尝试了不同的方法来解决它,并在将几乎所有活动设置为 singleInstance 的过程中发现只有一个非常奇怪的解决方案,setting all intent flags to CLEAR_TOP and NEW_TASK
但所有活动都呈现出一些奇怪的情况(不是像往常一样,我的意思是,首先,出现带有 actionBar 的空白黑屏,之后 ~1第二个出现我的真实布局),正如我已经说过的,有点延迟。我不喜欢这个解决方案,尽管一切都正确关闭并产生了正确的后果。现在,我正试图让它正常工作,而不会出现这种延迟和奇怪的黑屏。我也尝试过使用意图标志CLEAR_TASK, CLEAR_TOP
。尝试clearTaskOnLaunh for root activity and finishOnLaunch in manifest file
在必要的地方用于其他人,没有帮助。如何解决?
编辑:
尝试再次将 clearTaskOnLaunch 设置为 A。我在第一次启动应用程序时看到下一个日志(A 已经调用了 B 没有任何标志):
Main stack:
TaskRecord{42610648 #869 A }
Intent { flg=0x10000000 cmp=/.activities.SplashActivity }
Hist #4: ActivityRecord{413cf8f8 /.activities.GuestActivity}
Intent { cmp=/.activities.GuestActivity }
ProcessRecord{414fdf60 15651:/10103}
// 访客 Activity(B) 调用 UserActivity(C):
Intent { flg=0x10000000 cmp=/.activities.SplashActivity }
Hist #3: ActivityRecord{415c86f0 /.activities.UserActivity}
Intent { cmp=/.activities.UserActivity }
ProcessRecord{414fdf60 15651:/10103}
//按下主页按钮并再次启动应用程序(A调用了B):
TaskRecord{42610648 #869 A cashongo.app.peachy}
Intent { flg=0x10000000 cmp=c/.activities.SplashActivity }
Hist #5: ActivityRecord{42127398/.activities.GuestActivity}
Intent { cmp=/.activities.GuestActivity }
ProcessRecord{414fdf60 15651:/10103}
Hist #4: ActivityRecord{415c86f0 /.activities.UserActivity}
Intent { cmp=/.activities.UserActivity }
ProcessRecord{414fdf60 15651:/10103}
同样的问题,历史上的最后一次活动。如果我按下返回按钮,我会得到 UserActivity。