Как я могу отправить различные аргументы типа в AsyncTask.AsyncTask, чтобы избежать NetworkOnMainThread
Я развиваю систему входа в android, используя J Son/php. Я получил NetworkOnMainThread Exception, и мне предложили реализовать AsyncTask в моем коде. Мне нужно отправить URL в строку и List. Как я могу отправить это функции? Эти значения отправляются из другого класса.
public class JSONParser extends AsyncTask<String,Void,JSONObject>
Я не знаю, верю я или нет. В ожидании ответа.
вот моя модификация сделал
private String url;
private List<NameValuePair> params;
@Override
protected JSONObject doInBackground(String... args) {
return getJsonFromURL(url,params);
}
void callJson(String url,List<NameValuePair> params){
this.url=url;
this.params=params;
}
Я зову AsyncTask как этот путь:
jsonParser=new JSONParser();
jsonParser.setter(LoginUrl, username,password);
try {
jsonObject= jsonParser.execute("").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return jsonObject;
Теперь я получаю эту ошибку.
2843-2858/? E/JSON Parser﹕ Error parsing data org.json.JSONException: Value loginRegistration of type java.lang.String cannot be converted to JSONObject
01-07 10:04:09.808 2843-2843/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: artha.ordermaking.KOT, PID: 2843
java.lang.NullPointerException
at
ex.WelcomeActivity$PlaceholderFragment.loginProcess(WelcomeActivity.java:84)
at ex.WelcomeActivity$PlaceholderFragment$1.onClick(WelcomeActivity.java:118)
Обратите внимание, что я изменил свой код, представленный выше.
вы можете создать конструктор в своей асинтете, чтобы передать, например, дополнительные данные. – njzk2
Я пробовал свой уровень лучше. Но все равно получил Исключение. –
Если у вас есть проблемы с вашим кодом, подумайте о включении соответствующих вопросов в вопрос, с исключением stacktrace из logcat. – laalto