Попробуйте запустить AsyncTask
без .get()
.
Вы можете использовать интерфейс ( см. Оригинальный ответ ):
Ваш интерфейс:
public interface OnTaskCompleted{
void onTaskCompleted();
}
Ваша деятельность:
public MainActivity extends AppCompatActivity implements OnTaskCompleted{
//your MainActivity
}
И ваш AsyncTask:
public class CustomAsyncTask extends android.os.AsyncTask<Void, Void, String> {
private OnTaskCompleted listener;
public CustomAsyncTask(OnTaskCompleted listener){
this.listener=listener;
}
//required methods
protected void onPostExecute(Object o){
//your stuff
listener.onTaskCompleted();
}
}
Другой способ - добавить установщик для message
в MainActivity
:
public class MainActivity extends AppCompatActivity {
//...
private String message;
public void setMessage(String message) {
this.message = message;
}
// ...
customAsyncTask.execute();
Затем просто обновите message
в .onPostExecute()
в CustomAsyncTask
:
public class CustomAsyncTask extends android.os.AsyncTask<Void, Void, String> {
//...
@Override
protected void onPostExecute(String message) {
progressBar.setVisibility(View.GONE);
MainActivity activity = (MainActivity) context;
activity.setMessage(message);
}