我有通过两个操作检查Internet连接的代码。如果Internet连接为ON,则应用程序将启动一项特定的活动。如果Internet断开连接,该应用程序将显示一条消息,要求用户连接到Internet继续正常使用该应用程序。

因此,我要打开“无线设置页”,然后在用户enabling Wi-Fi, it should open a SplashScreen2 activity时打开。这非常重要。仅在启用WI-FI或Internet连接之后。

但是,我的代码不是在if connection == false之后变为true时等待用户连接到Internet,而是直接将其关闭,因为我放了finish();。我不希望我的应用程序完成它,也不知道该怎么做。我需要一些帮助。

有我的代码:

public class Splash extends Activity  {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen_layout);

    ConnectivityManager connectivitymanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkinfo = connectivitymanager.getActiveNetworkInfo();
    final boolean 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) {
                    Splash.this.runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            Toast toast = Toast.makeText(Splash.this, "You must connect to the Internet to continue", Toast.LENGTH_LONG);
                            toast.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
                            toast.show();

                        }
                    });
                    **finish();**

                } else {
                    finish();
                    startActivity(new Intent(Splash.this,
                            SplashScreen2.class));
                }
                Looper.loop();
            }
        }
    };
    splashThread.start();

    }
}

最佳答案

而不是使用finish();在您的代码中,您可以打开设置页面,以便用户可以连接到互联网,并且当您打开设置页面时,不要像这样完成当前活动:

Intent intent=new Intent(Settings.ACTION_WIRELESS_SETTINGS);
startActivity(intent);


这样,用户可以再次尝试进行下一个活动。

10-07 20:07
查看更多