SORU
1 EYLÜL 2010, ÇARŞAMBA


Can't Looper aramadı işleyicisi içinde iş parçacığı oluşturma.() hazırlamak için ProgressDialog içinde AsyncTask

Bu hatayı alıyorum neden anlamıyorum. AsyncTask arka planda bazı işlemler çalıştırmak için kullanıyorum.

Var:

protected void onPreExecute() 
{
    connectionProgressDialog = new ProgressDialog(SetPreference.this);
    connectionProgressDialog.setCancelable(true);
    connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    connectionProgressDialog.setMessage("Connecting to site...");
    connectionProgressDialog.show();

    downloadSpinnerProgressDialog = new ProgressDialog(SetPreference.this);
    downloadSpinnerProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    downloadSpinnerProgressDialog.setMessage("Downloading wallpaper...");
}

Ben bir koşula bağlı: doInBackground() içine aldığımda

[...]    
connectionProgressDialog.dismiss();
downloadSpinnerProgressDialog.show();
[...]

downloadSpinnerProgressDialog.show() çalıştığım zaman hata alıyorum.

Herhangi bir fikir adamlar?

CEVAP
1 EYLÜL 2010, ÇARŞAMBA


show() User-Interface (UI) thread, doInBackground() süre gelen çağrılmalıdır yöntemi AsyncTask tasarlanmış ana nedeni olan farklı bir iş parçacığı üzerinde çalışır.

Ya onPostExecute() 11 *veya show() aramalısın.

Örneğin:

class ExampleTask extends AsyncTask<String, String, String> {

    // Your onPreExecute method.

    @Override
    protected String doInBackground(String... params) {
        // Your code.
        if (condition_is_true) {
            this.publishProgress("Show the dialog");
        }
        return "Result";
    }

    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);
        connectionProgressDialog.dismiss();
        downloadSpinnerProgressDialog.show();
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009