Skip to content Skip to sidebar Skip to footer

Toast Is Crashing Application, Even Inside Thread

I have an onClick event in my android app that triggers the following code but it keeps crashing my app. I put it in a thread only because i read that that's supposed to prevent cr

Solution 1:

You need to use runOnUiThread

Something like

runOnUiThread(newRunnable() {
    publicvoidrun()
    {
        Toast.makeText(ctx, toast, Toast.LENGTH_SHORT).show();
    }
});

Toast is a UI element so it needs to run on the UI Thread, not a background Thread.

However, if this is all you are using it for then you don't need a separate Thread just to show a Toast. If you can explain the context of how you are using it then maybe we can help with a better way. Also, if you are inside of your Activity then you don't need a variable for Context. You can use ActivityName.this instead to access the Activity Context

Solution 2:

You likely don't have your ctx variable instantiated, so you are getting NULL Pointer.

You should not put this in a Thread, and is actually a pretty bad idea (knowing you are just getting started).

execute: adb logcat to see your log output.

Solution 3:

You don't need a different thread, your ctx variable is probably the one causing it, try using getApplicationContext(), this should work:

import android.widget.Toast;

Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_LONG).show();

Solution 4:

Only the mainthread can change the UI. That's why your application crashes. Do your work on the mainthread, and if you are doing something heavy like network or IO, you should use AsyncTask because each thread has 5 seconds to respond.

Solution 5:

Maybe this one can help you.

runOnUiThread(()->Toast.makeText(this,"I am a Toast message",Toast.LENGTH_SHORT).show());

Post a Comment for "Toast Is Crashing Application, Even Inside Thread"