2013-11-27 6 views
0

У меня есть пользовательское предупреждение. Я создал собственный макет для него и класс, расширяющий диалоговое окно, где у меня есть несколько функций, определяющих поведение бдительности. Я вызываю это пользовательское предупреждение из активности, нажимая на кнопку.handler.postDelayed в пользовательских предупреждениях сбой моего приложения

Все работает нормально, пока не хочу ДОБАВИТЬ handler.postDelayed Диалог.

Вот немного кода из моего класса Dialog:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.bonus_dialog); 

    handler.postDelayed(tickOne, 900); 
    handler.postDelayed(tickTwo, 1800); 

} 

Вот tickOne исполняемым:

Runnable tickOne = new Runnable() { 

    @Override 
    public void run() { 
     countdown.setText("00:04"); 

    } 
}; 

метод tickTwo это то же самое, только установить другой текст.

Когда приложение падает он показывает ошибку в активности, откуда я называю Диалог, и я проследить ошибку назад к этой линии:

 dialog.show(); 

Я понял, что если я комментировать методы handler.postDelayed , мой диалог будет показан и исчезнет по назначению.

Итак, мой вопрос: почему метод postDelayed не поддерживается в пользовательских диалоговом окне и как я могу обойти это?

+0

Вы можете показать свой логарифм? А также, где вы создаете этот обработчик? – Rajeev

ответ

1

Необходимо отобразить диалоговое окно в потоке пользовательского интерфейса. Сделайте что-нибудь вроде:

final SomeActivity activity = this. 
Runnable tick1 = new Runnable() { 
    public void run(){ 
    countdown.setText("00:04"); 
    activity.runOnUIThread(new Runnable() { 
     public void run(){ 
     countdown.show(); // assuming the countdown is the dialog you want to show 
     } 
    }); 
    } 
} 
+0

глядя на ваш ответ, я понял, что он решил. Не нужно было показывать диалог в потоке пользовательского интерфейса, как вы предложили НО, мне просто нужно было сделать Handler *** final ***, и теперь он работает как шарм! – SteBra

+0

Рад, что я мог бы помочь :) – meredrica

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