Android アプリの最初のアクティビティである「ランチャー アクティビティ」は、すぐに終了します。目標は、共有設定変数の値に応じて、MainActivity または UserLoginActivity にリダイレクトすることです。
この変数が存在しない場合、MainActivity に対して StartActivity が自動的に実行されます。この変数が設定されている場合、ユーザーを認証するために、API に対して HTTP 要求を実行します。次に、MainActivity を開始します。通常、HTTP 要求にかかる時間は 1 秒未満です。
問題は、LauncherActivity の中央にプログレス バーを表示して、何かが読み込まれていることをユーザーが理解できるようにしたいということです。問題は、画面に何も表示されないことです。しかし、アクティビティを開始する行にコメントを付けると、それが表示されます...アクティビティの期間が速すぎて何も表示できないようです!
setContentView() メソッドを呼び出すと、ビューが画面に即座にロードされると思いました。私のケースは正常な動作ですか? アクティビティが約 1 秒続くことがわかっている場合、画面に進行状況バーを表示するにはどうすればよいですか?
ここで私のランチャー アクティビティを確認できます
public class Launcher extends Activity {
private void goToUserLogin(){
Intent intent;
intent = new Intent(this, UserLoginActivity.class);
startActivity(intent);
finish();
}
private void goToMain(){
YokiAPI API = new YokiAPI(this);
Intent intent;
try {
if (API.authenticateSmart(YokiGlobals.preferences.getSavedUserId(this))) {
intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
} else {
this.goToUserLogin();
}
} catch (Exception e){}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
// Launch Demo if First Run
if (YokiGlobals.preferences.getFirstLaunch(this)){
YokiGlobals.preferences.updateFirstLaunch(false, this);
this.launchDemo();
}
/*
** If userId saved, smart Auth and go to Main
** Else go to User Login for Full Auth or register
*/
if (YokiGlobals.preferences.getSavedUserId(this) == null){
this.goToUserLogin();
}
else {
this.goToMain();
}
}
}
そして、.xml リソース ファイル
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="THIS TEXT WONT APPEAR"
android:layout_marginTop="208dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
ありがとう、オスカー