我的Android應用程序需要在應用程序啓動時執行初始http請求,以從RESTful服務中獲取配置json文件。此請求由Volley 完成,只要應用程序獲取數據,MainActivity便會啓動。我還定義了一些深層鏈接,使用給定的URI在我的應用程序中打開WebView。深度鏈接必須由SplashActivity處理,因爲配置需要首先由Volley加載。我不知道這是否是正確的處理方法。 也許這將是一個選項來請求應用程序類中的配置,以便配置始終可用,無論哪個Activity首先啓動?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. 在初始啓動時,Android應用程序的彈出窗口
- 3. 初始應用程序入門啓動後啓動初始屏幕
- 4. Android ContentProvider初始化不在應用程序啓動
- 5. 使用請求初始化角度應用程序
- 6. 應用程序初始化webapi總是請求default.aspx
- 7. 獲取用於啓動OS X應用程序的初始URL
- 8. 從故事板初始應用程序啓動失敗調用NSDocument初始化
- 9. 在web應用程序初始化的Spring bean啓動
- 10. IBM Worklight - 應用程序服務器啓動時的初始化
- 11. 我的應用程序需要時間進行初始啓動
- 12. 在啓動應用程序時初始化昂貴的對象
- 13. 在應用程序池啓動時初始化ASP.NET Web應用程序
- 14. Android應用程序初始化
- 15. 初始化Android應用程序
- 16. Android應用程序啓動
- 17. 啓動Android應用程序
- 18. 啓動android應用程序
- 19. Android服務在啓動時啓動並啓動一個URI請求來啓動另一個應用程序
- 20. 更改初始啓動活動後,應用程序將不會啓動
- 21. 啓動Android的Android應用程序關閉開始
- 22. 始終從啓動程序啓動應用程序
- 23. CefSharp應用程序啓動初始化問題
- 24. Tomcat Java Servlet - 在應用程序啓動時初始化類
- 25. 克服編譯(?)暫停* secondary *初始ASP.Net應用程序啓動?
- 26. 在啓動時初始化Java EE應用程序緩存
- 27. 每次應用程序啓動時顯示初始視圖
- 28. 當應用程序啓動時初始化庫項目
- 29. 應用程序啓動觸發對crl.microsoft.com和ctldl.windowsupdate.com的請求
- 30. 如何從chrome c的外部請求啓動應用程序#
從Application Class請求配置是一個更好的選擇。 –
你能解釋一下,如何處理異步請求?只有在請求完成時,MainActivity纔會出現。 – Ikno0wit
已添加答案...可能有幫助。 –