Тост и асинхн
-
29-09-2019 - |
Вопрос
У меня есть тост в рабском потоке, который должен сообщить пользователю, что соединение установлено. Для этого я знаю, что мне нужно использовать Async, чтобы сделать тост, но я не уверен, где или как реализовать расширенную асинхронность. Если я это понимаю, я думаю, что смогу просто создать MyAsync с и просто OnProgressUpdate () Toast?
@Override
public void onProgressUpdate(String... args) {
Toast.makeText(context, args, Toast.LENGTH_SHORT).show();
}
Спасибо за ваше время ~ aedon
Решение
Да, вы должны быть в состоянии просто расширить асинктюду и изменить переменные шаблона к тому, что вам нужно. Toast Class - это статический класс, поэтому его можно назвать из любой нити, не беспокоясь о конфликтах.
Я не вижу никаких проблем с вашим кодом выше, за исключением того, что вы не хотели бы назвать новые сообщения тосты очень часто, так как они стекают. Поэтому, если вы должны были непрерывно позвонить в функцию .show (), она составила бы их и продолжала бы показывать новые сообщения Toasts каждую длину_short, пока он не поймал.
Что касается примера Asynctask, вот вы:
private class MyAsync extends AsyncTask<<What to pass in to doInBackground>, <What to pass in to onProgressUpdate>, <What type onPostExecute receives>> {
protected T (result type to onPostExecute) doInBackground(T... urls) {
//Do big calculations in here
}
protected void onProgressUpdate(T... progress) {
//Update
}
protected void onPostExecute(T result) {
//Done
}
}