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