Приложението за Android се срива, когато тостът се стартира в try catch

Създавам приложение за Android, което има екран за вход. Това, което направих, беше, че всеки път, когато потребителят щракне върху бутона за изпращане, той стартира диалогов прозорец за прогрес. след това извикайте нова тема, за да потвърдите влизането. Когато се опитам да стартирам тост на функцията в влизането, приложението внезапно се срива. Това, което направих с него, е следното:

    loginButton.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){
               dialog = ProgressDialog.show(MainActivity.this, "", 
                        "Validating user...", true);
            new Thread(new Runnable(){
                public void run(){


                    login();
                }
            }).start();
        }

    });

тогава моята функция за влизане е следната:

void login(){

try{
//some code
} catch(Exception e){

dialog.dismiss();
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

}

Но по някаква причина, след като премине към функцията catch, приложението изведнъж се срива само когато добавя кода за тоста. Какво не е наред с моя код и защо се срива само когато използвам тостове?


person marchemike    schedule 22.10.2014    source източник
comment
погледнахте ли LogCat на изключението?   -  person panini    schedule 22.10.2014


Отговори (2)


Тостът е в друга работна тема?

Можете ли да поставите тоста в runOnUiThread()?

person liuzhidong    schedule 22.10.2014
comment
Току-що прехвърлих целия тост на runOnUiThread(). защо е така дали е защото поставих тоста в нова нишка, която използвах за стартиране на функцията за влизане? - person marchemike; 22.10.2014

Опитахте ли да отстраните грешки в кода си? Вероятно получавате нулев указател от getApplicationContext(), тъй като го извиквате от вашата нишка. Декларирайте контекст на променлива някъде и използвайте тази променлива, за да направите Toast (ако имате нужда).

person Marija Milosevic    schedule 22.10.2014