Ну, я написал программу, которая использует inte rnet доступ и делает https запросы. Поэтому мне пришлось использовать AsyncTask для выполнения части запроса. Моя проблема в том, что в моей основной деятельности у меня есть функция, которая увеличивает значение счетчика после каждого запроса https. В моем backgroundTask (это мой класс AsyncTask) я включил целое число c с именем: resultTest
, которое нумерует каждое сгенерированное исключение. Я просто хочу передать значение (0/1 или true / false) в зависимости от того, было ли соединение успешным с моим основным потоком. Это значение, которое будет передано, будет определять, следует ли мне увеличивать счетчик или нет.
Вот часть OnPostExecute моего backgroundTask, просто чтобы дать вам представление о том, как она работает:
@Override
protected void onPostExecute(String result) {
//this method will be running on UI thread
pdLoading.dismiss();
if (resultTest == 0) {
Toast.makeText(ctx,"Successfully Recorded",Toast.LENGTH_LONG).show();
}
else{
String msg = "";
switch(resultTest){
case 1:msg = "Internal App Error";
case 2:msg="Server Problem";
case 3:msg="Server Returned Error";
case 4:msg="Connection Problem";
}
Toast.makeText(ctx,msg,Toast.LENGTH_LONG).show();
}
}
Вот часть моего основного потока, где я создал экземпляр BackgroundTask и событие, которое зависит от возвращаемого значения:
BackgroundTaskWater backgroundTaskWater = new BackgroundTaskWater(getActivity());
backgroundTaskWater.execute(field, val);
// FIX THIS INCREMENT
if(code == 0) {
meterItemIncrement(meters);
screen.setText("");
}
Как передать значение переменной resultTest в backgroundTask в переменную код в главном потоке?
Я пытался использовать метод stati c и функцию получения, но не смог. Значение не передается Я даже пытался изменить код переменной в главном потоке на publi c stati c и передал значение из backgroundTask, но когда backgroundTask уничтожается, значение сбрасывается. значение не передается.
Любая идея или предложение будут высоко оценены !!