Search code examples
javaandroidandroid-studioandroid-toastandroid-splashscreen

My toast message is not appearing in the app


It was visible at first, but I don't know if it's related to the emulator, but my toast message is no longer visible. Can you help me?

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;

@SuppressLint("CustomSplashScreen")
public class SplashActivity extends AppCompatActivity {
    private static final String PREFS_NAME = "MyPrefsFile";
    private static final String KEY_FIRST_TIME = "first_time";

    private boolean isFirstTime() {
        SharedPreferences preferences = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        boolean firstTime = preferences.getBoolean(KEY_FIRST_TIME, true);
        if (firstTime) {
            preferences.edit().putBoolean(KEY_FIRST_TIME, false).apply();
        }
        return firstTime;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        if (isFirstTime()) {
            Toast.makeText(this, "Welcome", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "Hello", Toast.LENGTH_SHORT).show();
        }

        new Handler().postDelayed(() -> {
            Intent i = new Intent(SplashActivity.this, MainActivity.class);
            startActivity(i);
            finish();
        }, 5000);



    }


}

my code is like this And as I said, the toast message appeared on the screen at first, but I don't know if I did something, but it no longer appears. Could it have something to do with xml files?


Solution

  • It seems like an emulator issue. Your toast should be displayed in any case based on code you provided.

    Try to:

    1. Cold boot emulator
    2. Test on real device
    3. Delay toast showing

    Note: never use splash screen in this way. It's designed to be something like loading screen, not with fixed timer.