求高人指点 一个登陆事件网络状态的监听有关问题

求高人指点 一个登陆事件网络状态的监听问题
 我写了一个登陆的点击事件,在登陆的时候访问服务器,之间有个网络状态的判断。

 如果我打开应用,进入登陆界面的时候手机联网的话,登陆成功 没问题
 问题是   如果我进入登陆界面的时候,手机没联网   登陆失败,显示 “你目前没有网络连接”,可是此时连上网,(注:我此时手机联网,依然停留在登陆界面),点击登陆依然是登陆失败,提示我没有网络连接。

以下是我的代码
public class LoginActivity extends Activity {

private  ProgressDialog   pd;
private  boolean    isNetWork;
private  EditText   username;
private  EditText   password;
private  String     nameStr;
private  String     passwordStr;
private  SharedPreferences   shared;
private  Intent  service;
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);


username = (EditText) this.findViewById(R.id.username);
password = (EditText) this.findViewById(R.id.password);
username.setText("admin");
password.setText("123456");
pd = new ProgressDialog(this);
pd.setMessage("正在加载中......");
}
/**  
 * 点击登陆按钮要触发的事件
 * @throws Exception 
 */
public void btn_login(View v) throws Exception{

nameStr = username.getText().toString().trim();
passwordStr = password.getText().toString().trim();
if(StringUtils.isEmpty(nameStr)||StringUtils.isEmpty(passwordStr)){
Toast.makeText(LoginActivity.this,"对不起,用户名与密码不能为空!!",5).show();
}else{
new LoginTask().execute();
}
}
/**
 * 登陆事件的异步任务
 * @author scuser
 *
 */
public final class LoginTask extends AsyncTask<String,Void,Map<String,Object>>{

@Override
protected void onPreExecute() {
pd.show();
}
@Override
protected Map<String,Object> doInBackground(String... params) {
try {
String path = Constant.URL.login+"/"+nameStr+"/"+passwordStr;
Map<String,String>  map = new HashMap<String, String>();
map.put("name", nameStr);
map.put("password", passwordStr);

byte[]  data = Tools.sendHttpGet(path, map);
String json = new String(data,"utf-8");
return  parseJson(json);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(Map<String,Object> result) {
pd.dismiss();
if(!isNetWork){
Toast.makeText(LoginActivity.this,"你目前没有网络链接,请检查网络设置!!",Toast.LENGTH_LONG).show();
return;
}
if(result ==null){
Toast.makeText(LoginActivity.this,"网络链接出现异常!!",Toast.LENGTH_LONG).show();
return;
}else{
String content = (String) result.get("code");
if(isNetWork==true &&"SUCCESS".equals(content)){

shared = LoginActivity.this.getSharedPreferences("userInfo", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
String name = (String) result.get("name");
String password = (String) result.get("password");
editor.putString("name", name);
editor.putString("password", password);
editor.commit();
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);

}else if(isNetWork==true &&"FAIL_BUS".equals(content)){
Toast.makeText(LoginActivity.this,"对不起你的用户名或者密码不正确!!!",5).show();
}
}
}
}
/**
 * 用来监听网络状态的广播
 */
public  BroadcastReceiver receiver = new  BroadcastReceiver(){

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

//得到网络连接状态
boolean  netState = intent.getBooleanExtra("netState", true);
isNetWork = netState;
}
};
@Override
protected void onDestroy() {
super.onDestroy();

unregisterReceiver(receiver);
stopService(service);
}
@Override
protected void onStart() {
super.onStart();
//在此启动一个服务,用来监听网络状态
service = new Intent();
service.setAction("com.tematch.networkstate");
startService(service);
//动态注册一个广播
IntentFilter  filter = new IntentFilter();
filter.addAction("com.tematch.recevier");
registerReceiver(receiver, filter);
}
}


这是服务的代码
public class NetworkStateService extends Service {

@Override
public IBinder onBind(Intent intent) {

return null;
}

@Override
public void onCreate() {
super.onCreate();

}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {