android下检查网络不通的后续合理人性化操作(常用)

来源:互联网 发布:海岛奇兵妹妹升级数据 编辑:程序博客网 时间:2024/05/16 16:29

直接上代码 ,注释很详细


Main:


package com.gem.hsx;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class Main extends Activity {  Button btnok;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        btnok=(Button) findViewById(R.id.btnok);        btnok.setOnClickListener(new View.OnClickListener() {        @Overridepublic void onClick(View v) {Intent intent=new  Intent();intent.setClass(Main.this, Second.class);startActivity(intent);}});            }}

Second:

/** * @author hsx */package com.gem.hsx;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;/**         *@author  hsx         *@date 2012-11-21          *@Description  在android开发中常常遇到网络连接,所以要进行网络判断,本文主要是侧重于在连接网络获取数据之后, *如果网路不通,数据没有获取到之后的操作。本文核心的操作是Common类中的方法 */public class Second extends Activity {Common common=new Common();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.second);init();}/**  *@author  hsx *@Description    * */    /**    * 加载起始数据    */private void init() {         /**          * 弹出一个进度对话框          */common.showProgressDialog(Second.this);        /**         * 在此线程中进行网络连接的操作,并将获取到的数据通过message发送到handler中         */new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 100000000; i++) {}Message message=new Message();message.obj=null;handler.sendMessage(message);}}).start();}Handler handler=new Handler(){           /**            * 在handler中对数据进行判断,数据是否为空或者是其他,要根据具体情况,进行判断。            */@Overridepublic void handleMessage(Message msg) {if (msg.obj==null) {common.setNetwork(Second.this);}super.handleMessage(msg);}};}

Common:


/** * @author hsx */package com.gem.hsx;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.provider.Settings;/**         *@author  hsx         *@date 2012-11-21          *@Description     */public class Common {private ProgressDialog progressDialog;/** * 显示进度对话框 *@author  hsx *@Description  *@param context   * */public void showProgressDialog(Context context){progressDialog = new ProgressDialog(context);progressDialog.setTitle("数据加载中,请等待");progressDialog.show(); }/** * 网络判断 * @param ctx * @return */public  boolean isNetworkAvailable(Context ctx) {ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getActiveNetworkInfo();     return (info != null && info.isConnected());}/** * 让进度对话框消失,而且弹出对话框要求用户去设置网络 *@author  hsx *@Description  *@param context *@param progressDialog   * */public  void  setNetwork(final Context context){progressDialog.dismiss();AlertDialog dialog ;dialog= new AlertDialog.Builder(context).create();dialog.setTitle("提示");dialog.setMessage("当前网络不可用,请设置正确的网络");dialog.setCanceledOnTouchOutside(false);dialog.setButton(DialogInterface.BUTTON_POSITIVE , "设置", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){context.startActivity(new Intent(Settings.ACTION_SETTINGS));}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){dialog.dismiss();}});dialog.show();}/** * 重写一个方法,主要是可以自定义ProgressDialog*@author  hsx*@Description *@param context*@param p  * */public  void  setNetwork(final Context context,ProgressDialog p){p.dismiss();AlertDialog dialog ;dialog= new AlertDialog.Builder(context).create();dialog.setTitle("提示");dialog.setMessage("当前网络不可用,请设置正确的网络");dialog.setCanceledOnTouchOutside(false);dialog.setButton(DialogInterface.BUTTON_POSITIVE , "设置", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){context.startActivity(new Intent(Settings.ACTION_SETTINGS));}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){dialog.dismiss();}});dialog.show();}}



原创粉丝点击