Android:在主线程AsyncTask类中测试网络连接

时间:2012-10-29 11:39:53

标签: android android-asynctask

我正在使用http客户端解析服务器上的xml ...如果互联网已连接,我想提供条件。

这是类testConnection:

    public boolean testConnection()
        {
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnected()) 
            {
               Log.d("NetWork :", "Network available");
               return true;
            } 
            else 
            {
                Log.d("NetWork :", "Network not available");
                return false;
            }
        }

我的asyncTask类工作正常。我把条件放在onCreate方法的活动中:

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.main);
    //asyncTask is main thread class that parsing xml from server
    asyncTask task = new asyncTask();
    if(testConnection())
    {
        task.execute();
    }
    else
    {
        startActivity(new Intent("com.airport.testConnection"));
    }

}

问题是,当我关闭互联网连接(禁用wifi)并打开应用程序时,它总是粉碎。

所有答案和评论都将不胜感激....

1 个答案:

答案 0 :(得分:0)

在开始活动中传递上下文(this)