Тост и Асинк - PullRequest
       29

Тост и Асинк

1 голос
/ 29 ноября 2010

У меня есть тост в подчиненном потоке, который должен сообщить пользователю, когда соединение установлено.Я знаю, что для этого мне нужно использовать Async, но я не уверен, где и как реализовать расширенную асинхронность.Если я понимаю, я думаю, я могу просто создать MyAsync с тостом и просто onProgressUpdate ()?

@Override
public void onProgressUpdate(String... args) {

         Toast.makeText(context, args, Toast.LENGTH_SHORT).show();
}

Спасибо за ваше время ~ Aedon

1 Ответ

1 голос
/ 29 ноября 2010

Да, вы должны иметь возможность просто расширить ASyncTask и изменить переменные шаблона на то, что вам нужно.Класс Toast является статическим классом, поэтому его можно вызывать из любого потока, не беспокоясь о конфликтах.

Я не вижу проблем с вашим кодом выше, за исключением того, что вы не захотите часто вызывать новые сообщения Toast, так как они складываются.Поэтому, если бы вы продолжали непрерывно вызывать функцию .show (), она складывала бы их и продолжала бы показывать новые сообщения Toast через каждый интервал LENGTH_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
     }
 }
...