Как и приложение, открываемое пользователем, оно проверит, вошел ли пользователь в систему или нет. Если нет, оно переместит пользователя в OnboardActivity, в противном случае оно переместится в HomeActivity, но не сможет это исправить.
После попытки после исчезновения заставки отображается SplashActivity, а затем начинается проверка, подписался ли пользователь или нет для перехода к желаемому действию ниже - мой код
public class SplashActivity расширяет AppCompatActivity { p>
@Override
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
FirebaseApp.initializeApp(this);
initialize();
checkMaintenanceAndRedirect();
}
private void initialize() {
auth = FirebaseAuth.getInstance();
requestQueue = Volley.newRequestQueue(this);
}
private void checkMaintenanceAndRedirect() {
StringRequest stringRequest = new StringRequest(Request.Method.GET, apiUrl,
new Response.Listener() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
String status = jsonResponse.getString("status");
if ("off".equals(status)) {
navigateToMainteActivity();
} else {
redirectToAppropriateActivity();
}
} catch (JSONException e) {
e.printStackTrace();
navigateToMainteActivity(); // Navigate to maintenance activity as fallback
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error occurred!", Toast.LENGTH_SHORT).show();
navigateToMainteActivity(); // Navigate to maintenance activity as fallback
}
});
requestQueue.add(stringRequest);
}
private void redirectToAppropriateActivity() {
FirebaseUser currentUser = auth.getCurrentUser();
if (currentUser != null) {
navigateToHomeActivity();
} else {
navigateToOnboardActivity();
}
}
Код: Выделить всё
Intent ii = new Intent(getApplicationContext(), HomeActivity.class);
startActivity(ii);
finish();
}
private void navigateToOnboardActivity() {
Intent ii = new Intent(getApplicationContext(), OnboardActivity.class);
startActivity(ii);
finish();
}
private void navigateToMainteActivity() {
Intent im = new Intent(getApplicationContext(), MainteActivity.class);
startActivity(im);
finish();
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... postsplash