多くのスライドを含むイントロページを持つアプリを構築しています。最初のユーザーがイントロを通過すると、彼はログイン画面に誘導されます。彼がログイン(または登録)すると、彼はアプリのホームページに入ります。ユーザーがサインアウトしない限り、彼がアプリアイコンをクリックすると、彼は直接ホーム画面に移動します。1つのインテントから別のインテントに移動する(ベストプラクティスは何ですか)
私はLAUNCHERアクティビティとしてイントロのページインテントを使用していて、sharedpreference
を使用して「最初の使用状況」を保存し、状態を記録しています。ユーザーが初めてログインしたかどうかをテストすることで、私は彼を別の意図に導いています。
私の質問は、この目的のリダイレクトを行うのに最も適した位置はどこですか?イントロページには非常に多くのフラグメントとコンポーネントがあるため、LAUNCHERアクティビティとして設定し、if else文をすべて使用してユーザがどこに行かなければならないのかを判断して、システムリソースを浪費しましたか?ユーザーが既にログインしている場合は、読み込まれたアプリの紹介情報を表示せずにホームページに入ります。
空のアクティビティを作成し、それをLAUNCHERアクティビティとして設定し、その中にすべてのif else文を入れることをお勧めします。だからアプリは '重い'アプリ紹介ページに行く必要はありません。
PS:super.onCreate()の直後にonCreateのelse文がある場合は、その方向を宣言しました。すでに、新しいものを登録し、登録が、それでも賢明
のようなイントロを通過しませんでした:
@Override
protected void onCreate(Bundle savedInstanceState) {
// Fullscreen
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
// activity_first_usage is the container for all frames
setContentView(R.layout.activity_first_usage);
logger = new Logger(this);
if (!logger.isFirstUsage()) {
if (logger.hasTOKEN()) {
// If user didn't log out, then he can stay in the app
Intent home = new Intent(getApplicationContext(), Home.class);
startActivity(home);
finish();
} else {
// If this is not the first time user login in, no need to show the intro
Intent directToSignIn = new Intent(getApplicationContext(), SignIn.class);
startActivity(directToSignIn);
finish();
}
} else {
// If not, continue with the Intro and set usage status to used
logger.setFirstUsage(false);
}
...
}