Есть что-то, что я не понимаю здесь...
Я определяю класс
public class SendStringToServer extends AsyncTask<String, Integer, Boolean>
{
.
.
.
}
Теперь я применил метод onPostExecute и я вызываю это фоновое действие из основного действия, используя
new SendStringToServer().execute("stringToSend");
Теперь, как я могу узнать из основного действия, что это действие было сделано? Привет, я могу узнать из основного действия, которое эта строка уже была отправлена?
Попробуйте вот так:
public Handler myHandler= new Handler(){
@Override
public void handleMessage(Message msg){
if(msg.arg1 == 1){
//NOW in mainThread
}
}
};
public class SendStringToServer extends AsyncTask<String, Integer, Boolean>
{
.
.
.
onPostExecute(){
---------
-----------------
Message msg = myHandler.obtainMessage();
msg.arg1 = 1;
myHandler.sendMessage(msg);
}
}
Вы проверяете состояние AsyncTask с помощью этого метода:
asynctask.getStatus();
(Подробнее здесь: http://developer.android.com/reference/android/os/AsyncTask.html#getStatus%28%29)
Также проверьте здесь возможные результаты: http://developer.android.com/reference/android/os/AsyncTask.Status.html
Надеюсь это поможет!
Вам нужно использовать событие в вашем onpostexecute, где в активности есть слушатель.
Самый простой способ - создать глобальный флаг внутри вашей деятельности
boolean sendComplete = false;
затем в onPostExecute после
new SendStringToServer().execute("stringToSend");
просто добавь
sendComplete = true;