簡體   English   中英

在嘗試捕獲中運行Toast時Android應用程序崩潰

[英]Android app crashing when toast is run in try catch

我正在創建一個具有登錄屏幕的android應用。 我所做的是,每當用戶單擊“提交”按鈕時,它將運行進度對話框。 然后調用一個新線程以驗證登錄名。 當我嘗試在登錄內的函數上運行Toast時,應用突然崩潰。 我所做的是這樣的:

    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();

}

但是由於某種原因, 只有當我添加了吐司的代碼時 ,應用程序才會突然崩潰。 我的代碼有什么問題,為什么只有當我使用吐司時它才崩潰?

吐司是在另一個工作線程中嗎?

可以在runOnUiThread()中放入吐司嗎?

您是否嘗試過調試代碼? 從線程調用它時,可能會從getApplicationContext()獲得空指針。 在某處聲明一個變量上下文,並使用該變量制作Toast(如果需要)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM