Android菜鸟成长记6 -- 网络连接的检查

   在android开发中我们要经常考虑到各种问题。在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。

  那么具体步骤是怎样的呢?

  首先,我们想写一个简单的测试layout,添加一个button和textview。

  然后我们创建一个BtnListener类,继承OnClickListener接口,注意是(import android.view.View.OnClickListener包下的,要导错包)

 

  

 1 package com.example.day02;
 2 
 3 
 4 import android.app.Activity;
 5 import android.content.Context;
 6 import android.net.ConnectivityManager;
 7 import android.net.NetworkInfo;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.TextView;
11 import android.widget.Toast;
12 
13 public class BtnListener implements OnClickListener {
14 
15     private Context context;
16     private TextView tv1;
17     private ConnectivityManager cm;
18     public BtnListener (Context context) {
19         this.context = context;
20     }
21     
22     public void onClick(View v) {
23         Activity a = (Activity)context;
24         tv1 = (TextView) a.findViewById(R.id.tsTestNetWorkBtn);
25         cm = (ConnectivityManager) a.getSystemService(a.CONNECTIVITY_SERVICE);
30             NetworkInfo info = cm.getActiveNetworkInfo();
31             if(info == null){
32                  //提示没有网络
33                 tv1.setText("当前没有网络");
34                 tv1.setBackgroundResource(R.color.red);
35                 Toast.makeText(context, "当前没有网络", Toast.LENGTH_LONG).show();
36             }
37             else{
38                 //不需要提示,然后继续相关代码
39                 
40                 tv1.setBackgroundResource(R.color.blueviolet);
41             }
42         }45         
46     }
47 
48 }

 

  然后我们在回到MainActivity类中,写上button的点击事件

 

  

 1 package com.example.day02;
 2 
 3 
 4 import android.app.Activity;
 5 import android.app.AlertDialog;
 6 import android.app.AlertDialog.Builder;
 7 import android.content.ComponentName;
 8 import android.content.Context;
 9 import android.content.DialogInterface;
10 import android.content.Intent;
11 import android.os.Bundle;
12 import android.widget.Button;
13 
14 
15 public class MainActivity extends Activity {
16 
17     private Button btn;
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22         btn = (Button) this.findViewById(R.id.button1);
23         btn.setOnClickListener(new BtnListener(MainActivity.this));
24         
25     }
26 
27 
28     
29 }

 

为了能让项目正常运行,还有加上权限,在AndroidManifest.xml下进行配置

  

1 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
2     <uses-permission android:name="android.permission.INTERNET"/>  

 

接着我们就可以来测试我们的项目了,在模拟器上进行安装。

结果:

有网络的结果

 

 

无网络的结果:

 

 

posted @ 2016-11-21 16:07  土豆冰淇淋  阅读(153)  评论(0编辑  收藏  举报