android - 在 Android 启动画面上显示 Toast

标签 android splash-screen toast

我遇到了以下问题。我希望我的应用程序在检测到没有网络连接时退出。我的应用程序以启动屏幕启动。如果设备上没有网络连接,是否可以显示启动屏幕,然后显示 toast。然后终止应用程序

我的闪屏代码中有类似这样的内容:

onCreate() 内部

ConnectivityManager connectivitymanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkinfo = connectivitymanager.getActiveNetworkInfo();
        connected = networkinfo != null && networkinfo.isAvailable()
                && networkinfo.isConnected();
        Log.v("Network state : ", connected + "");

        Thread splashThread = new Thread() {
            @Override
            public void run() {
                try {
                    int waited = 0;
                    while (waited < 5000) {
                        sleep(100);
                        waited += 100;
                    }
                } catch (InterruptedException e) {
                    // do nothing
                } finally {
                    Looper.prepare();
                    if (connected == false) {
                        Toast.makeText(
                                splashscreenActivity.this,
                                "No Network Connection is available on device.",
                                Toast.LENGTH_LONG).show();
                        finish();
                        System.exit(0);
                    } else {
                        finish();
                        startActivity(new Intent(splashscreenActivity.this,
                                mainActivity.class));
                    }
                    Looper.loop();
                }
            }
        };
        splashThread.start();

1.请查看我的代码并指导我如何显示该 toast 。 2.或者建议我其他更好的方法来做到这一点

谢谢

编辑:

谢谢大家的回复:

我选择了 Dharmendra 通过闪屏 Activity 显示 toast 的方式:

有效的代码是:

if (connected == false) {
            splashscreenActivity.this.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(splashscreenActivity.this,
                            "No Internet Connection.", 3000).show();
                }
            });
            finish();
        } else {
            //migrate to main activity from splashscreen
        }

最佳答案

你可以这样做,使用Handler。将以下代码放在else条件中

  Handler mHandler = new Handler(Looper.getMainLooper());

mHandler.post(new Runnable() {
                                public void run() {

                                    Toast.makeText(Splash.this, "Network error", Toast.LENGTH_LONG).show(); 
                                      finish();

                                }
                            });

或者,我在我的应用程序中执行此操作:

if(status.equals("CONNECTED"))
                        {
                        startActivity(new Intent(Splash.this,Activity.class));
                        finish();
                        }else
                        { 
                        startActivity(new Intent(Splash.this,NetworkError.class));
                        finish();
                        }

其中 NetworkError 类显示另一个布局,其图像如“无网络、、、、”(或任何您想要显示而不是启动的内容...)

关于android - 在 Android 启动画面上显示 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596574/

相关文章:

Android Gradle 分离变量

javascript - 从 React Native(android) 中的 .jar 文件访问方法

android - 输入调度超时 ANR

xcode - NSWindow 在应用程序启动后不会立即绘制

Android Manifest 实现问题

vb.net - 为什么我的文字一直突出显示?

android - NDK-BUILD 未被识别为命令 (Windows)

java - 启动画面不出现,主要 Activity 出现

android - Toast 类型中的方法 makeText 不适用于参数

android - 在android中定期运行asynctask