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