我有一个活动,每个片段中有大约10个片段,有一个带ProgressDialog的AsyncTask。我需要关闭所有片段,当我单击“后退”按钮时,它关闭了,但ProgressDialog仍然可见,尤其是在片段之间传输时。下面是我使用的代码
@Override
public void onBackPressed() {
if(fragmentManager!=null){
for(int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) {
fragmentManager.popBackStack();
}}
}
此外,在调试时,我发现当我按下Back按钮时,它会为我打开每个片段进入onCreateView,尽管我使用transaction.replace
方法在片段之间传输。
2条答案
按热度按时间s3fp2yjn1#
我正在用下面方法清除堆栈
最多清除1表示将从堆栈中删除所有片段,仅在堆栈中保留一个片段。
用法popBackStackTillEntry(1);
qvk1mo1f2#
这是我的Kotlin解决方案:
您可以为名称传递null,因为它可以为null。