Android:应用程序开始时的初始请求



我的Android应用程序需要在应用程序上执行初始的HTTP请求,以便从RESTFUL服务中获取Config JSON文件。这个请求由凌空作出应用程序获取数据后,主动脉就开始了。我还定义了一些深链接,以在我的应用程序中使用给定的URI打开WebView。由于需要首先由凌空加载配置,因此必须通过飞溅性来处理深链接。我不知道这是否是处理此问题的正确方法。也许是在应用程序类中请求配置的一种选择,以便始终可用,无论哪个活动首先开始?

这是正确的方法。在您的飞溅活动中,您应该通过您的深链接来处理传入的意图,启动您的凌空请求,只有这样您才能继续前进。

btw,与此同时,您应该向用户展示一些加载程序/进度并当然要处理失败。

如果您在应用程序类中进行异步调用,则可以使用回调并显示所需的活动。

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");
}

最新更新