连接到互联网时在主屏幕上显示进度轮 [Android]

Displaying a progress wheel on main screen while connecting to internet [Android]

我想在徽标屏幕中显示一个在连接到 Internet 时加载的进度条。 我正在使用下面的 class 检查互联网连接:

 public class AppStatus {
    public boolean isNetworkAvailable(final Context context) {
        final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
        return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected();
    }
}

带进度条的屏幕代码为:

public class logo_activity extends AppCompatActivity {
    private ProgressBar mProgress;
    private int mProgressStatus = 0;
    private Handler mHandler = new Handler();
    private AppStatus con = new AppStatus();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logo_activity);
        mProgress = (ProgressBar) findViewById(R.id.progressBar);

        new Thread(new Runnable() {
            public void run() {
                if (con.isNetworkAvailable(getApplicationContext()))
                {
                    mProgressStatus += 10;
                   //user authentication in background.
                }
                else {
                    mProgressStatus +=10;
                   // Display an alert dialog box to connect to internet by launching into settings activity. 
                }

                // Update the progress bar
                mHandler.post(new Runnable() {
                    public void run() {
                        mProgress.setProgress(mProgressStatus);
                    }
                });
            }
        }).start();

    }
}

我面临的问题是警报对话框没有显示,当我启动 activity 进入设置并在没有打开互联网的情况下退出时,屏幕只停留在加载屏幕上。 也有人可以为它写一个 asynctask 方法。我似乎无法绕过它。

谢谢。

问题是您创建的新线程仍在 UI 线程上运行,因此没有任何显示,因为您的 UI 已被锁定。您需要使用 AssyncTask。 here 是教程。