powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Can't create handler inside thread that has not called Looper.prepare()
6 сообщений из 6, страница 1 из 1
Can't create handler inside thread that has not called Looper.prepare()
    #38849187
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, с Новым Годом!

Подскажите почему приложение вылетает с ошибкой при показе progressdialog.

Ошибка:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
            at java.util.concurrent.FutureTask.run(FutureTask.java:239)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
            at android.os.Handler.<init>(Handler.java:197)
            at android.os.Handler.<init>(Handler.java:111)
            at android.view.ViewRootImpl$ViewRootHandler.<init>(ViewRootImpl.java:2802)
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:3105)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:216)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:303)
            at ru.korshun.cobaguardidea.app.Root$CheckDirectoryExist.onPreExecute(Root.java:962) //this.pd.show();
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
            at android.os.AsyncTask.execute(AsyncTask.java:534)
            at ru.korshun.cobaguardidea.app.Root$CheckDirectoryExist.doInBackground(Root.java:980)
            at ru.korshun.cobaguardidea.app.Root$CheckDirectoryExist.doInBackground(Root.java:942)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:856)




Код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
@Override
protected void onCreate(Bundle savedInstanceState) {
....
new CheckDirectoryExist(new ProgressDialog(this)).execute();
....
}

    class CheckDirectoryExist
            extends AsyncTask<Void, Void, Boolean> {

        private ProgressDialog pd;

        CheckDirectoryExist(ProgressDialog pd) {
            this.pd = pd;

            this.pd.setTitle(Root.PD_TITLE);
            this.pd.setMessage("Files indexing ...");

            this.pd.setCancelable(false);
        }

        @Override
        protected void onPreExecute() {
            this.pd.show(); //Дальше этого не идет
        }
}




Заранее благодарю!
...
Рейтинг: 0 / 0
Can't create handler inside thread that has not called Looper.prepare()
    #38849266
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому как создаешь диалог в дополнительном потоке - а показываешь в основном.
...
Рейтинг: 0 / 0
Can't create handler inside thread that has not called Looper.prepare()
    #38849279
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээм, это где это диалог в дополнительном потоке создается ? о_О Если честно, вообще не понял, что вы имеете в виду.
...
Рейтинг: 0 / 0
Can't create handler inside thread that has not called Looper.prepare()
    #38849932
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще без вариантов ? :(
...
Рейтинг: 0 / 0
Can't create handler inside thread that has not called Looper.prepare()
    #38850165
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshun,


вынеси показ диалога в onProgressUpdate
...
Рейтинг: 0 / 0
Can't create handler inside thread that has not called Looper.prepare()
    #38850206
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нету времени пробовать. я бы перенес для начала создание диалога в onPreExecute. параллельно почитал про androidannotations чтоб избавиться от этих уродливых анонимных классов на базе AsyncTask
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Can't create handler inside thread that has not called Looper.prepare()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]