我正在尝试获取活动中加载的片段的回栈计数。这里的想法是,如果 getBackStackEntryCount 返回“0”,则运行我的 onexitCheck() 方法来磨损/要求用户退出或不退出,但我在第 70 行得到一个 NPE,它获取 getBackStackEntryCount()。
我无法弄清楚我有什么问题。请查看我的方法并在您的答案中添加更正。谢谢。
public class RegulatoryDiscription extends Fragment {
. . .
}
. . .
//THE NPE STARTS HERE-->
FragmentManager.BackStackEntry backEntry = getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount());
int bs = backEntry.getId();
public void onBackPressed() {
if (bs == 0) {
onexitCheck();
}
}
private Toast toast;
private long lastBackPressTime = 0;
public void onexitCheck() {
if (this.lastBackPressTime < System.currentTimeMillis() - 4000) {
toast = Toast.makeText(getActivity(), "Press back again to close this app", 4000);
toast.setDuration(4000);
toast.show();
this.lastBackPressTime = System.currentTimeMillis();
} else {
if (toast != null) {
toast.cancel();
}
super.getActivity().onBackPressed();
}
}