Erläuterung:Wie kann ich mit Ausnahme umgehen, wenn ich asynctask in Android verwende?
ich einen Web-Service für meinen application.In verwenden, das jede Anfrage ist> GET-Methode. Erstellen Sie also eine Klasse, in der ich auch eine Methode zum Festlegen der URL erstellen und die Antwort vom Server abrufen kann.
Hier ist meine Klasse, die die Antwort vom Server erhalten.
package adapter;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
public class CallAPI {
private Context context;
public String GetResponseGetMethod(String url) {
URL obj;
String Response="";
String getMethodResponse = "";
try {
obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
Log.e("GET Response Code :: " , ""+responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) { // success
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine+"\n");
}
in.close();
// print result
getMethodResponse=response.toString();
Log.e("Response",response.toString());
} else {
Log.e("GET request not worked","");
}
}
catch (MalformedURLException e) {
Toast.makeText(context, "YEs got it", Toast.LENGTH_LONG).show();
}
catch (IOException e){
Toast.makeText(context, "YEs Inside IO it", Toast.LENGTH_LONG).show();
}
return getMethodResponse;
}
}
Über der Klasse erhalten Antwort.
Hier ist meine Klasse, wo ich Asynktask verwendet
public class TabJson extends AsyncTask<String, String, String> {
String jsonStr = "";
@Override
protected void onPreExecute() {
Utils.Pdialog(getContext());
}
@Override
protected String doInBackground(String... params) {
jsonStr = new CallAPI().GetResponseGetMethod(url);
if (jsonStr != null) {
try {
JSONObject obj = new JSONObject(jsonStr);
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
}
Manchmal dauert es zu Zeitverhalten zu bekommen.
MyQuestion ist:
Wie kann ich mit dieser Situation umgehen, wenn es zu Zeit in Anspruch nimmt response.It zu bekommen> auch eine Ausnahme wie unknowhostapi angehoben.
Wie kann ich von diesem Problem zu überwinden.Bitte helfen Sie mir, dieses Problem zu lösen.
kann auch den Code, wie Sie diese Methode verwenden ? wie in 'asynctask'? –
Sie müssen asynctask verwenden. http://developer.android.com/reference/android/os/AsyncTask.html – learner
Ich habe meinen Beitrag bearbeitet siehe –