Диалог изменения Android-изменений в asynctask [duplicate]

Если вы используете Java 6, вы можете использовать следующий oneliner для чтения целого из консоли:

  int n = Integer.parseInt (System.console (). readLine ())  ;   
4
задан Name is Nilay 29 September 2012 в 10:12
поделиться

3 ответа

protected Void doInBackground(Integer... params) 
{
    onProgessUpdate("Contacting server..Please wait..");
    ...
}

Urrrm, нет, это не сработает.

Попробуйте ...

publishProgress("Contacting server..Please wait..");

Вы должны «опубликовать» свой прогресс в doInBackground(..) в порядок для onProgressUpdate(...), который будет вызываться.

Также не вызывайте dialog.dismiss() в doInBackground(...) вместо этого в onPostExecute(...).

8
ответ дан Squonk 15 August 2018 в 17:45
поделиться
  • 1
    здесь, когда я применяю publishProgress («Contacting server..Please wait .. & quot;); , тогда он показывает ошибку: Метод publishProgress (Integer ...) в типе AsyncTask & lt; String , целое число, Пустота & GT; не применим для аргументов (String) – Vinit Vikash 1 July 2013 в 11:48
  • 2
    @VinitVikash: вам нужно иметь AsyncTask с сигнатурой <String,String,Void> - это второй тип параметра, который определяет, что передается в onProgressUpdate(). – Squonk 1 July 2013 в 17:51

Проблема также может заключаться в том, что вы не установили «начальное сообщение». Если вы не установили сообщение для своего ProgressDialog, прежде чем пытаться сделать это внутри onProgressUpdate, это не сработает.

ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Title");
progressDialog.setMessage("Initial message needed");

public class foo extends AsyncTask<Void,Integer,Void> {
    ...
}

Также обратите внимание, что если вам нужно как обновление хода выполнения, так и вы можете использовать аргумент переменной Integer с одним из целых чисел, определяющим объем выполнения, а другой определяющий сообщение как индекс массива сообщений String[] (если сообщения известны заранее).

0
ответ дан Prof 15 August 2018 в 17:45
поделиться

Я думаю, что это должно быть ..

publishProgress("Your Dialog message..");

not

onProgessUpdate("Processing the result"); 

в doInBack .. ()

Что-то вроде,

protected Long doInBackground(URL... urls) {
      publishProgress("Hello");
     return null;
 }

 protected void onProgressUpdate(String msg) {
     dialog.setMessage(msg);

 }
3
ответ дан user370305 15 August 2018 в 17:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: