在我的应用程序中,我检查互联网连接,当用户没有互联网时,他会显示一个警报对话框。此警报对话框必须按一下。“关闭”按钮关闭此应用程序,“转到设置”按钮转到用户电话设置。我做的很完美,但是当用户连接到互联网并返回该应用程序时,用户会显示此警报对话框。但是当他连接到互联网时,我没有显示此警报对话框,那么他会转到应用程序中的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();
}
我该怎么办。谢谢
答案 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);
}
}