使用警报对话框检查互联网连接

时间:2019-09-18 13:43:47

标签: android android-alertdialog

在我的应用程序中,我检查互联网连接,当用户没有互联网时,他会显示一个警报对话框。此警报对话框必须按一下。“关闭”按钮关闭此应用程序,“转到设置”按钮转到用户电话设置。我做的很完美,但是当用户连接到互联网并返回该应用程序时,用户会显示此警报对话框。但是当他连接到互联网时,我没有显示此警报对话框,那么他会转到应用程序中的mainactivity。

    InternetCheck.isConnected(this);

    logo = findViewById(R.id.logo);
    rotateAnimation = AnimationUtils.loadAnimation(this,R.anim.rotate);
    logo.setAnimation(rotateAnimation);
    splash_progressBar = findViewById(R.id.splash_progressBar);
    splash_progressBar.setVisibility(View.VISIBLE);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            if (InternetCheck.isConnected(getApplicationContext())){
                Intent next = new Intent(SplashActivity.this,MainActivity.class);
                startActivity(next);
                finish();
            }else{
                showDialog();
                splash_progressBar.setVisibility(View.INVISIBLE);
            }
        }
    },SPLASH_OUT);
}

private void showDialog() {

    LayoutInflater inflater = LayoutInflater.from(this);
    View view = inflater.inflate(R.layout.setting_dialog,null);


    Button clsBtn = view.findViewById(R.id.closeBtn);
    Button setttingBtn = view.findViewById(R.id.settingBtn);

    clsBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();

        }
    });

    setttingBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);
        }
    });


    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setView(view)
            .create();

    alertDialog.show();
}

我该怎么办。谢谢

1 个答案:

答案 0 :(得分:0)

为了处理其他活动的结果,您应该在SplashActivity中覆盖onActivityResult()

另外,当您调用startActivityForResult()时,最好提供一个非零值作为requestCode参数。

public static final int REQUEST_CODE_SETTINGS = 1;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Constants.REQUEST_CODE_SETTINGS) {

        //Handle the result from settings activity
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {

                if (InternetCheck.isConnected(getApplicationContext())){
                    Intent next = new Intent(SplashActivity.this,MainActivity.class);
                    startActivity(next);
                    finish();
                } else{
                    showDialog();
                    splash_progressBar.setVisibility(View.INVISIBLE);
                }
            }
        },SPLASH_OUT);
    }
}