2012-03-17 3 views
0

Я вызываю это из функции путем создания объекта. Появится окно прогресса, а затем исчезает, но тост не отображается. (Я удалил код, следующий за тостом, но даже тот код, который запрашивает веб-страницы, не выполняется в doinBackground)Задача Async для Android не работает

private class MyTask extends AsyncTask<Void, Void, Void> { 

    MyTask(String p) { 
     enter=p; 
    } 

    protected void onPreExecute() { 
     progressDialog = ProgressDialog.show(CheckitoutActivity.this,"", "Loading. Please wait...", true); 
    } 

    protected Void doInBackground(Void... params) { 
     try { 
      Toast.makeText(getApplicationContext(), "GHJGFHGJL",1000).show(); 
     } 
    } 


    @Override 
    protected void onPostExecute(Void result) { 
     progressDialog.dismiss(); 
    } 

} 

doInBackground не apppear называться. Даже тост не отображается. Это так.

+0

Запустили ли вы задачу? У вас есть ошибки в журнале? – zapl

ответ

2

Вы не можете отображать пользовательский интерфейс, как тосты и диалоговое оповещение, в методе doInBackground. вместо этого вы можете показать этот пользовательский интерфейс в методе postExecute asynkTask

+0

Спасибо за помощь – user1092042

2

doInBackground метод не является потоком пользовательского интерфейса, поэтому он не может Dispaly тоста

Так используйте runOnUIthread(this) или onProgressUpdate и уверены .execute() с объектом, как objMytask.execute();

2

Toast (Вы не можете коснуться UI темы от doInBack(), поэтому) не работает в doInBackground() так просто поставить Log

protected Void doInBackground(Void... params) { 
try 
{ 
    Log.e("AsyncTask","Inside the doInBackground()"); 
} 
} 

Теперь проверьте ваш logcat ... Если отображается ProgressDailog, то ваш AsyncTask работает хорошо.

+0

Спасибо, ребята, за вашу помощь. Похоже, что тост выбрасывал исключение, когда он был помещен внутри doinbackgroung и молча останавливался. – user1092042

Смежные вопросы