我有一个使用Login的应用程序。我想只在用户以前没有登录时才运行此活动。但这是我的默认活动。有没有方法可以跳过默认活动并直接转到下一个活动?
答案 0 :(得分:5)
您应该从登录活动中拨打下一个活动(例如个人资料)。应用程序工作流程为:
1. Start Login Activity (by default);
2. Check login state;
3. If user already logged - start new Activity and close this.
怎么做?
要调用新活动,您应该使用Intent。要关闭当前,以便用户以后不能返回登录活动,您应该清除当前的应用程序backstack(即活动历史记录)。此外,您可以重置过渡动画,因此用户(如果已记录)甚至不会注意到已调用登录活动。
private void startProfileActivity() {
Intent intent = new Intent(this, ProfileActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); //clear backstack
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); //it will looks like the transition inside the app, so user will not notice login activity, instead of default animation, which look like starting other app.
startActivity(intent);
}
答案 1 :(得分:3)
您可以将共享偏好用于此目的
<强> 1。登录(成功)
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
prefs.edit().putBoolean("isLogin", true).apply();
现在切换您的活动
<强> 2。在下次打开应用时,请检查
if(prefs.getLong("isLogin", false)){
//User already Login
}else{
// User not logged in
}
P.S。您可以在LoginActivity的onStart()
上使用此检查。
答案 2 :(得分:0)
Try This type Code:-
public class LoginActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(islogin){ //your boolean variable
Intent intent = new Intent();
intent.setClass(LoginActivity.this, "Your Next activity";
startActivity(intent);
finish();
}
setContentView(R.layout.activity_login);