【问题标题】:show if you don't have Internet connection with dialog通过对话框显示您是否没有 Internet 连接
【发布时间】:2018-03-28 02:00:31
【问题描述】:

打开应用且设备未联网时,弹出Dialog,如果点击正按钮,应用关闭。

这很简单,但我似乎找不到任何东西。

我的MainActivity:(其实还有另一个名字HomeAcitivty)

package tk.protvapp.protv;




import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;

public class HomeActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        MobileAds.initialize(this, "");
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }

    public void onClickToScreenfox(View v) {
        Intent intent = new Intent(HomeActivity.this, FoxActivity.class);
        startActivity(intent);
    }

    public void onClickToScreendch(View v) {
        Intent intent = new Intent(HomeActivity.this, DisneychannelActivity.class);
        startActivity(intent);
    }

    public void onClickToScreendxd(View v) {
        Intent intent = new Intent(HomeActivity.this, DisneyxdActivity.class);
        startActivity(intent);
    }

    public void onClickToScreendlk(View v) {
        Intent intent = new Intent(HomeActivity.this, LinksActivity.class);
        startActivity(intent);
    }
}

【问题讨论】:

  • 请选择一个答案。谢谢!

标签: android android-studio dialog


【解决方案1】:

试试这个。这是我用来检查互联网连接的课程。

public class ConnectionChecker {
private Context context;

public ConnectionChecker(Context context) {
    super();
    this.context = context;
}
public boolean isConnectedToInternet(){

    ConnectivityManager conn = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
    if(conn!=null)
    {
        NetworkInfo[] info = conn.getAllNetworkInfo();
        if (info != null)
            for (int i = 0; i < info.length; i++)
                if (info[i].getState() == NetworkInfo.State.CONNECTED)
                {
                    return true;
                }

    }
    return false;

}
}

然后在您的 mainActivity 检查连接,如果未连接,则创建一个对话框。

if(!new ConnectionChecker(this).isConnectedToInternet()){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("No internet connection");
            builder.setPositiveButton("Quit", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    MainActivity.this.finish;
                }
            });
            builder.show();
}

【讨论】:

    【解决方案2】:

    只需将其编辑/添加到您的 HomeActivity:

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        if ( !isNetworkAvailable() ) {
            terminatingAlertMessage("No Internet. :(");
        }
    
    }
    
    private void terminatingAlertMessage(String message) {
    
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(message).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                finish();
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
    
    }
    
    
    private boolean isNetworkAvailable() {
    
        ConnectivityManager connectivityManager
                = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
    

    【讨论】:

      【解决方案3】:
               //Connection Check
      
                  public boolean checkConnection() {
                      ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                      NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
                      if (null == activeNetwork)
                          return false;
                      return activeNetwork.isConnectedOrConnecting();
                  }
      
              private void ExitAlertMessage(String message) {
      
                  AlertDialog.Builder builder = new AlertDialog.Builder(this);
                  builder.setMessage(message).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
                          finish();
                      }
                  });
                  AlertDialog alert = builder.create();
                  alert.show();
      
              }
      
          //////use
           if (checkConnection()) {
      /// do what  you want
                                          } else {
                                              ExitAlertMessage("Please Check Internet Connection.");
                                          }
      

      【讨论】:

        【解决方案4】:

        在你的 HomeActivity onCreate 中调用这个函数

                      //if no internet
                       alertForExit();
        
                    private void alertForExit(){  
        
                   AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setMessage("Poor internet connection!Please try after sometime").setCancelable(
                        false).setPositiveButton("Quit",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                Intent startMain = new Intent(Intent.ACTION_MAIN);
                                startMain.addCategory(Intent.CATEGORY_HOME);
                                startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                startActivity(startMain);
                            }
                        }).setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
        
                            }
                        });
                AlertDialog alert = builder.create();
                alert.show();
        

        }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-08
          相关资源
          最近更新 更多