Android 使用警报对话框检查internet连接

Android 使用警报对话框检查internet连接,android,android-alertdialog,Android,Android Alertdialog,在我的应用程序中,我检查internet连接,当用户没有internet时,他会显示一个警报对话框。此警报对话框必须按“关闭”按钮关闭此应用程序和“转到设置”按钮转到用户电话设置。我可以很好地执行此操作,但当用户在其internet连接上并返回此应用程序时,用户会显示此警报对话框。但当用户在其internet连接上时,我不会显示此警报对话框,然后他会转到应用程序中的主要活动 InternetCheck.isConnected(this); logo = findViewById

在我的应用程序中,我检查internet连接,当用户没有internet时,他会显示一个警报对话框。此警报对话框必须按“关闭”按钮关闭此应用程序和“转到设置”按钮转到用户电话设置。我可以很好地执行此操作,但当用户在其internet连接上并返回此应用程序时,用户会显示此警报对话框。但当用户在其internet连接上时,我不会显示此警报对话框,然后他会转到应用程序中的主要活动

    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();
}

如何执行此操作。谢谢您

为了处理来自其他活动的结果,您应该在您的活动中覆盖
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);
    }
}

你所说的“当他连接互联网时,我不显示此警报对话框,然后他转到应用程序中的mainactivity”是什么意思?请澄清您的问题假设用户没有internet连接,然后他看到警报对话框,并点击“转到设置”按钮,他返回到手机设置并在互联网连接上。然后他返回此应用程序,没有看到警报对话框,并转到此应用程序中的主要活动。这是正常的,他返回应用程序时没有看到对话框,因为互联网连接已断开on@matdev是的,但是我怎么做呢?你能解释一下你是否实现了onActivityResult()?这是您处理其他活动结果的方式谢谢您的回复,但我正在使用处理程序。您能与handler共享完整代码吗?对不起,先生,它不起作用。我能共享应用程序的应用程序的示例视频剪辑吗?@matdev问题是当用户在其internet连接上时,此应用程序会自动重新启动并转到下一个活动。我不理解您的评论。请用A:您的应用程序的预期行为B:您的应用程序的观察行为来澄清您的问题