Androidアプリケーションは、RESTfulサービスからconfig jsonファイルを取得するために、app startで最初のhttpリクエストを行う必要があります。この要求はVolleyによって行われます。 アプリケーションがデータを取得すると、MainActivityが開始されます。また、特定のURIを持つアプリケーションでWebViewを開くためにいくつかのディープリンクを定義しました。ディープリンクはSplashActivityによって処理される必要があります。これは、configをVolleyが最初にロードする必要があるためです。これが正しいかどうかは分かりません。 Applicationクラスでconfigを要求して、どのアクティビティを最初に起動してもconfigを常に利用できるようにするのはどうでしょうか?Android:アプリ起動時の最初のリクエスト
0
A
答えて
1
これは正しい方法です。 Splashアクティビティでは、あなたのディープリンクで着信インテントを処理し、Volleyリクエストを発生させ、その場合にのみあなたのロジックで進んでいく必要があります。
ところで、その間にユーザーにいくつかのローダー/進捗状況を表示し、もちろんエラーを処理する必要があります。
1
Applicationクラスで非同期呼び出しを行っている場合は、コールバックで要求を行い、必要なアクティビティを表示できます。
public interface ConfigListener {
public void onConfigReceived(List<ofSomething> list, boolean error, String message);
}
private void requestConfig(){
final DownloadUsingVolley downloader = new DownloadUsingVolley(getActivity());
downloader.retrieveData(new ConfigListener() {
@Override
public void onConfigReceived(List<ofSomething> list, boolean error, String message) {
//Show your required activity here
}
});
}
private void retrieveData(String url, final ConfigListener configListener){
final JsonObjectRequest request = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>(){
@Override
public void onResponse(JSONObject response) {
try {
//parse
configListener.onConfigReceived(result,false,null);
}catch (JSONException e){
configListener.onConfigReceived(0,true,e.getMessage());
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
configListener.onConfigReceived(0,true,volleyError.getMessage());
}
});
//adding request into the queue
ApplicationClass.getInstance().addToRequestQueue(request,"aTag");
}
関連する問題
- 1. 最初のアプリの起動時に.nibをロードする
- 2. iphoneアプリが最初の起動時にクラッシュする
- 3. 最初の起動時にアプリがフリーズする
- 4. Androidアプリは最初の起動時に非常に遅く起動しますが、通常は次の起動時に起動します
- 5. 再起動時のAndroidアプリのエラー
- 6. ウィジェットの最初の起動時にアクティビティを起動
- 7. 最初のアプリの起動時にAndroidアプリケーションの起動にcom.google.gms.google-servicesで起動するまでに時間がかかります
- 8. Android TabLayout最初に選択する起動時にタブ
- 9. Androidアプリが起動時にクラッシュする
- 10. Androidアプリの初回起動時にCordovaの戻るボタンが機能しない
- 11. アプリケーション起動時のSwift起動アプリ
- 12. NSFetchedResultsControllerデリゲートは最初のアプリの起動時にのみメソッドを起動します
- 13. iPhoneアプリの起動時に起動/初期化の手順は何ですか?
- 14. アプリの最初の起動時に「使用方法」画面(Goランチャーなど)を作成する方法(Android)
- 15. アプリ起動時のエラー
- 16. アプリの初回起動時にWebViewのログインに失敗する
- 17. アプリ起動時のアプリ内購入チェック
- 18. アプリの初回起動時にコンテンツをダウンロードする
- 19. 最初のアプリを起動する - Nativescript w/Angular2
- 20. Androidのコールの同期。各アプリ起動時の機能
- 21. ビジュアルスタジオがクラッシュし、最初の起動時に1回再起動します
- 22. Androidアプリがクラッシュするのは、Google Playからダウンロードした後初めて初めての起動時
- 23. Android 2.2のデフォルトの最初の起動アクティビティですか?
- 24. 最初の起動時のみ表示 - スウィフト3
- 25. 最初の起動時にアプリケーションの指示を実装する
- 26. CodeNameOne最初のAndroidアプリのビルドエラー
- 27. Android AVDの起動時エラー
- 28. Androidエミュレータ起動時
- 29. Androidアプリの起動時にオーディオを再生する
- 30. Androidアプリの起動に時間がかかりすぎる
アプリケーションクラスから設定を要求する方が適切です。 –
非同期要求の処理方法を説明できますか? MainActivityは、リクエストが完了した場合にのみ表示されます。 – Ikno0wit
が回答を追加しました。 –