Я пытаюсь реализовать следующий рабочий процесс для андроид приложения:Android - Workflow для Splash, Интро, Вход, Main
- Если приложение запускается, я хочу, чтобы показать экранную заставку (используя этот реализация: Splash screens the right way) только для стартапа приложения
- Если приложение открывается в первый раз, когда я хочу, чтобы показать интро (я подумать об использовании этой библиотеки: AppIntro)
- Если пользователь не вошел в систему, я хочу, чтобы показать знак активности
- В противном случае я хочу, чтобы показать основное направление деятельности
В теории я думаю, что я знаю, как это сделать. Таким образом, экран заставки не является проблемой, показывая ввод один раз, также не проблема с использованием общих настроек, а также проверка состояния входа не проблема с использованием Firebase Auth. Так что получить различные условия не проблема.
НО, где я на самом деле есть проблемы, как соединить отдельные действия.
Должен ли я использовать SplashScreen деятельность как своего рода начальной загрузки и запуска согласно деятельности там?
Псевдо Код для SplashActivity:
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showCorrectActivity();
}
private void showCorrectActivity() {
if(introExecuted) {
if(userSignedIn) {
startActivity(main);
} else {
startActivity(signIn);
showCorrectActivity();
}
} else {
startActivity(intro);
showCorrectActivity();
}
}
}
Или я должен реализовать какой-то поток, где основным видом деятельности является "хозяином" ?:
Начало SplashActivity, перенаправление на главную, проверьте в сети onCreate()
, если введено вступление, начните, соответственно, при необходимости приступите к входу в систему с основного.
Или совсем другой подход? Любые лучшие практики?
Мне тяжело здесь, поэтому спасибо вам за любые предложения!
только для хэдз-ап, попробуйте декомпилировать google login apk com.google.android.gsf.login.apk. он получил большую часть того, что вам нужно. –