我正在实现一个代码来验证是否有互联网连接。如果没有,它会启动 WiFi 设置,以便用户可以选择 Internet 连接。
问题是,我希望当用户选择连接并单击后退按钮时,我的 Activity 再次验证是否有任何连接可以继续执行,但它会再次进入 NETWORK_INACTIVE 对话框.
这是我开始新 Activity 的代码:
protected boolean hasNetworkConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
try{
if (!wifi.isConnected()){
if(mobile==null || (mobile!=null && !mobile.isConnected())){
onCreateDialog(NETWORK_INACTIVE).show();
return false;
}
}
}catch(Exception e){
Log.e("AEP41-Has Network", ""+e.getStackTrace());
}
return true;
}
@Override
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builter = new AlertDialog.Builder(
AEP41Activity.this);
switch (id) {
case NETWORK_INACTIVE:
builter.setCancelable(false);
builter.setTitle("Erreur de Reseau");
builter.setMessage("Aucune connexion internet trouve");
builter.setNegativeButton("Sortir",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
AEP41Activity.this.finish();
}
});
builter.setNeutralButton("Choisir Connexion",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(
Settings.ACTION_WIFI_SETTINGS));
});
break;
default:
break;
}
return builter.create();
}
我已经看到了选项 startActivityForResult(Intent, int)
但我没有找到任何使用设置的解决方案。
有什么办法可以做到这一点吗?
提前致谢;)
最佳答案
此调用不正确:
onCreateDialog(NETWORK_INACTIVE).show();
您永远不应该自己调用onCreateDialog()
。 Android 框架会为您完成此操作。您应该这样做,而不是调用 onCreateDialog(NETWORK_INACTIVE).show();
:
showDialog(NETWORK_INACTIVE);
关于java - startActivity(Intent)后恢复 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965512/