java - startActivity(Intent)后恢复 Activity

标签 java android android-intent start-activity

我正在实现一个代码来验证是否有互联网连接。如果没有,它会启动 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/

相关文章:

java - 无法将从 Restful 服务接收到的 inputStream 解码为 Android 中的位图

android - Xamarin, ImageView 问题

c# - WEBMethods (Java) 未写入网络驱动器?

java - 如何在没有时区对话的情况下解析时间?

java - 如何使用 Azure Java SDK 发送和接收消息

android - getExtras(name).getString 和 getIntent().getStringExtra(name) 的区别

android - Intent 和 Parcelable 对象 Android

Java/Android : virtual dispatch, switch-case,或数组访问

android - 如何从Android应用程序在YouTube上上传视频?

java - Android gcm 通知无法打开应用程序