Toast Is Crashing Application, Even Inside Thread
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"