私はそれが使用してFirebaseリアルタイムデータベースからいくつかのデータをロードし、すべての時間は、ユーザーがアプリを開くのAndroidアプリケーションを開発しているaddListenerForSingleValueEvent
アプリは、セッションの残りの間firebaseから何かを読み込むことはありません。
すべてがうまく動作しますが、これは非同期プロセスであるため、私は意見が彼らの使用が到着したデータの前にロードされる原因となりますので、すべてが完全にfirebaseからロードされる前に、主な活動に入ることからユーザーを防ぎたいです。
私は解決策を考え:すべてのデータがロードされているかどうかをチェックし、唯一のプロセスが終わったとき、主な活動が開始できるようになるスレッドを実装します。
だから、私の質問は以下のとおりです。
1 - 私は良いものであることを考えたでしょう解決策?
2 - 万一私の代わりにFirebaseのREST APIまたは何か他のものを使用してのようないくつかの他のアプローチを使用しますか?
私はすべてが完全にfirebaseからロードされる前に、主な活動に入ることからユーザーを防止したいです
その場合、あなたはスプラッシュページを実装する必要があります。あなたは、非同期の方法でデータをロードしにユーザーをリダイレクトするように、MainActivity
コールバックが完了したときにのみ。
すべてのデータがロードされ、プロセスが終わったときにのみ主な活動を開始するようになるかどうかをチェックしますスレッドを実装します。
他のスレッドは必要ありません。onDataChange()
私たちは、データベースからデータを取得が完了した場合にのみ発生します。
私が考えた解決策が良いのいずれかになりますか?
特許理由は上記です。
私の代わりにFirebase休憩APIまたは何か他のものを使用してのようないくつかの他のアプローチを使用する必要がありますか?
必要な場合にのみ、残りのAPIを使用する必要があります。しかし、これは、このAPIの非同期の仕方を解決することはできません。
同期の方法でfirebaseからデータを取得します
確かにNO!意図したとおりにあなたは非同期APIを処理する必要があります。詳細については、次のポストから私の答えを確認することができます。