单击其他活动中的按钮时,调用检查Internet连接类

时间:2014-08-11 07:53:19

标签: android class broadcastreceiver

我所拥有的是一个Android应用程序,我有一个活动,检查是否存在互联网连接,这里是:

public class MainActivity extends Activity {

    private static final String LOG_TAG = "CheckNetworkStatus";
     private NetworkChangeReceiver receiver;
     private boolean isConnected = false;
     private TextView networkStatus;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
          receiver = new NetworkChangeReceiver();
          registerReceiver(receiver, filter);

          networkStatus = (TextView) findViewById(R.id.networkStatus);
         }


         @Override
         protected void onDestroy() {
          Log.v(LOG_TAG, "onDestory");
          super.onDestroy();

          unregisterReceiver(receiver);

         }


         public class NetworkChangeReceiver extends BroadcastReceiver {

          @Override
          public void onReceive(final Context context, final Intent intent) {

           Log.v(LOG_TAG, "Receieved notification about network status");
           isNetworkAvailable(context);

          }


          private boolean isNetworkAvailable(Context context) {
           ConnectivityManager connectivity = (ConnectivityManager)
             context.getSystemService(Context.CONNECTIVITY_SERVICE);
           if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
             for (int i = 0; i < info.length; i++) {
              if (info[i].getState() == NetworkInfo.State.CONNECTED) {
               if(!isConnected){
                Log.v(LOG_TAG, "Now you are connected to Internet!");
                networkStatus.setText("Now you are connected to Internet!");
                isConnected = true;
                //do your processing here ---
                //if you need to post any data to the server or get status
                //update from the server
               }
               return true;
              }
             }
            }
           }
           Log.v(LOG_TAG, "You are not connected to Internet!");
           networkStatus.setText("You are not connected to Internet!");
           isConnected = false;
           return false;
          }
         }


        }

我有另一个有一个按钮的活动,我希望当我点击按钮检查是否存在互联网连接时,它将在此活动中举杯而不打开互联网活动,这是我的按钮:

  Submit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

如何让其他活动在点击时启动,而不会让它在应用程序中显示? 新的在Android ..请帮助:(

2 个答案:

答案 0 :(得分:3)

您需要创建单独的类来检查互联网连接,您可以通过其对象通过其对象来访问该类,这是示例。

使用 ConnectionDetector.java

保存以下代码
package com.yourpackagename;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ConnectionDetector {

    private Context _context;

    public ConnectionDetector(Context context){
        this._context = context;
    }

    public boolean isConnectingToInternet(){
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null) 
          {
              NetworkInfo[] info = connectivity.getAllNetworkInfo();
              if (info != null) 
                  for (int i = 0; i < info.length; i++) 
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }

          }
          return false;
    }
}

在您要用于检查代码下面的连接使用的活动

首先创建上面 ConnectionDetector

的对象
ConnectionDetector cd;

然后通过

进行初始化
cd = new ConnectionDetector(this);

然后在按钮点击事件的任何地方使用下面的代码。

if (!cd.isConnectingToInternet()) {
    //no internet present
} else {
    //internet present
}

答案 1 :(得分:0)

看到这个Git会帮助你。

https://github.com/shabbir-dhangot/Checking-Internet-connection

试试我创造的这个Git。