我有4-5个Android应用程序,我想为所有这些应用程序实现单点登录.因此,如果用户已登录任何一个应用程序,则不会要求他再次登录其他应用程序.我怎样才能在Android中完成它?
我有一种情况,我想从堆栈中清除所有片段,除了可见的片段(即顶部)
例如,后堆栈A-> B-> C-> D中有四个片段(D在顶部)
现在,我想从堆栈中删除片段A,B,C。但约束条件是从后堆栈中删除历史记录时,片段D上不应有任何可见的影响。
这是我的代码。
FragmentManager fm = getActivity().getSupportFragmentManager();
Bundle bundle = new Bundle();
OrderReceiptFragment orderReceiptFragment = new OrderReceiptFragment();
bundle.putSerializable("orderHistory", orderHistory);
orderReceiptFragment.setArguments(bundle);
CommonUtil.clearBackstack(fm);
fm.beginTransaction().setCustomAnimations(R.anim.enter_from_left,
R.anim.exit_to_right)
.replace(R.id.container, orderReceiptFragment).commit();
Run Code Online (Sandbox Code Playgroud)
清除堆栈的方法
public static void clearBackstack(FragmentManager fragmentManager) {
fragmentManager.popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是-在清理后退堆栈的同时,在几毫秒的时间内,后退堆栈的第一个片段都可见。看起来很奇怪。有人对此有解决方案吗?