我在主要活动开始时运行onStart方法时遇到问题。我的onstart方法不检查条件,因此,每当我打开我的应用程序时,我总是一直指向我项目的register_activity,这是不可接受的,因为我希望只有那些新用户才可以直接访问registerr_activity,而不是那些在数据库中已经存在。
package com.example.bookstore;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class MainActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth = FirebaseAuth.getInstance(); accessing firebashauth object
SystemClock.sleep(3000);
Intent register = new Intent(MainActivity.this, Register_Activity.class);
startActivity(register);
//here register intent will shift from
mainactivity to register_activity after 3000 ms
finish(); here finishing the register intent
}
@Override
protected void **onStart()** {
super.onStart();
**FirebaseUser currentUser = firebaseAuth.getCurrentUser();**
***if (currentUser == null)* {
Intent registerintent = new Intent(MainActivity.this,
Register_Activity.class);
startActivity(registerintent);
finish();
}
else {
*Intent homeactivity = new Intent(MainActivity.this,Home_Activity.class);
startActivity(homeactivity);
finish();*
}**
This if condition is not checking in onStart method and thus due to this i am always directing to register_activity.
}}
最佳答案
根据android生命周期,onCreate()在onStart()之前被调用。
在onCreate()中的代码中,您正在执行
Intent register = new Intent(MainActivity.this, Register_Activity.class);
startActivity(register);
因此,即使在检查onStart()内的逻辑之前,它也始终会进入Register活动。
若要解决此问题,请从onCreate()中删除上述行。