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. ブロードキャストレシーバが最初のアプリの起動時に動作しない
- 2. 最初のアプリの起動時に.nibをロードする
- 3. iphoneアプリが最初の起動時にクラッシュする
- 4. 最初の起動時にアプリがフリーズする
- 5. 最初の起動時のAndroidランタイムのアクセス許可
- 6. Androidアプリは最初の起動時に非常に遅く起動しますが、通常は次の起動時に起動します
- 7. 再起動時のAndroidアプリのエラー
- 8. ウィジェットの最初の起動時にアクティビティを起動
- 9. 最初のアプリの起動時にAndroidアプリケーションの起動にcom.google.gms.google-servicesで起動するまでに時間がかかります
- 10. 最初の再起動時にC#サービスが起動しない
- 11. Android TabLayout最初に選択する起動時にタブ
- 12. Androidアプリが起動時にクラッシュする
- 13. Androidアプリが起動時にクラッシュする
- 14. 最初のアプリの起動時にアクティベーションコードを確認してください
- 15. Androidアプリの初回起動時にCordovaの戻るボタンが機能しない
- 16. アプリ起動時の起動アクティビティ
- 17. アプリケーション起動時のSwift起動アプリ
- 18. NSFetchedResultsControllerデリゲートは最初のアプリの起動時にのみメソッドを起動します
- 19. iPhoneアプリの起動時に起動/初期化の手順は何ですか?
- 20. Androidアプリがクラッシュするが、最初のアクティビティに再起動しない
- 21. アプリの最初の起動時に「使用方法」画面(Goランチャーなど)を作成する方法(Android)
- 22. アプリ起動時のエラー
- 23. Androidアプリの起動ソース
- 24. アプリの初回起動時にWebViewのログインに失敗する
- 25. アプリ起動時のアプリ内購入チェック
- 26. iOSアプリの起動時にiOSアプリが起動する
- 27. 起動時にAndroidからのリクエストの許可
- 28. Unityシステム実装:アプリの起動時にクラッシュ - MetadataCache ::初期化()
- 29. アプリの初回起動時にコンテンツをダウンロードする
- 30. 最初のアプリを起動する - Nativescript w/Angular2
アプリケーションクラスから設定を要求する方が適切です。 –
非同期要求の処理方法を説明できますか? MainActivityは、リクエストが完了した場合にのみ表示されます。 – Ikno0wit
が回答を追加しました。 –