gpt4 book ai didi

java - Android Studio - 如何修复使用 flag_activity_clear_task 后后退按钮仍然有效的问题 | flag_activity_new_task?

转载 作者:行者123 更新时间:2023-11-30 10:02:38 25 4
gpt4 key购买 nike

我正在尝试向我的应用程序添加注销/注销功能。我正在关注这个 video在 youtube 上这样做。注销/注销功能工作正常,但在登录屏幕注销后我可以返回应用程序。我仍然没有尝试使用 onBackPressed() 方法。也许我可以努力防止后退 Action ,但我只是好奇为什么我的应用程序无法正常工作。

这是注销 fragment 代码

public class SignOutFragment extends Fragment {

private static final String TAG = "SignOutFragment";

//firebase
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;

private ProgressBar mProgressBar;
private TextView tvSignout, tvSigningOut;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_signout, container, false);
tvSignout = (TextView) view.findViewById(R.id.tvConfirmSignout);
mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
tvSigningOut = (TextView) view.findViewById(R.id.tvSigningOut);
Button btnConfirmSignout = (Button) view.findViewById(R.id.btnConfirmSignout);

mProgressBar.setVisibility(View.GONE);
tvSigningOut.setVisibility(View.GONE);

setupFirebaseAuth();

btnConfirmSignout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick: attempting to sign out.");
mProgressBar.setVisibility(View.VISIBLE);
tvSigningOut.setVisibility(View.VISIBLE);

mAuth.signOut();
}
});

return view;
}

/*
------------------------------------ Firebase ---------------------------------------------
*/

private void setupFirebaseAuth(){
Log.d(TAG, "setupFirebaseAuth: setting up firebase auth.");

mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();

if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");

Log.d(TAG, "onAuthStateChanged: navigating back to login screen.");
//Intent intent = new Intent(getActivity(), LoginActivity.class);
Intent intent = new Intent(getContext(),LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
getActivity().finish();
}
// ...
}
};
}

@Override
public void onStart() {
super.onStart();
mAuth.addAuthStateListener(mAuthListener);
}

@Override
public void onStop() {
super.onStop();
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
}
}

最佳答案

我想建议像下面这样更改标志的顺序。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

关于java - Android Studio - 如何修复使用 flag_activity_clear_task 后后退按钮仍然有效的问题 | flag_activity_new_task?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com