簡體   English   中英

在SplashScreen Android上顯示Toast

[英]Show Toast on SplashScreen Android

我陷入了以下問題:如果我的應用程序未檢測到網絡連接,則希望我的應用程序退出。我的應用程序以啟動屏幕啟動。如果設備上沒有網絡連接,則可以顯示啟動屏幕,然后顯示吐司,然后終止該應用程序

我的初始屏幕代碼中有這樣的內容:

內部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.請查看我的代碼並指導我如何顯示該吐司。 2.或者建議我其他更好的方法

謝謝

編輯:

謝謝大家的回復:

我選擇了Dharmendra通過啟動屏幕顯示吐司的方法:

適用的代碼是:

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類使用“ No Network ,,,”(或您要顯示而不是飛濺的任何內容...)顯示帶有圖像的另一種布局

您正在從線程創建並顯示Toast,因此可能不會調用它

您必須編寫此代碼

splashscreenActivity.this.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    Toast.makeText(c, "Internet connection not currently available.", 3000).show();
                }
            });

只需添加一個if else塊。(使用您的連接網絡信息)

if(connected){
//put the splash thread here
}else{
 finish();
}

如果您不希望捕獲任何異常,則使用finally塊。 在您的代碼中,將所有代碼置於else循環中,如果經過了5000分鍾,則轉到else語句並執行它。 如果要添加漁獲,則可以最終將其刪除。

暫無
暫無

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

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