Android 如果条件在调试器中执行两个块

Android 如果条件在调试器中执行两个块,android,Android,这可能有些愚蠢,但我有一个活动类从非活动类中调用一个方法。当我在Eclipse调试器中逐步执行此操作时,返回true和返回false都会在计算netinfo对象的if条件下执行,并且isOnline方法返回false,即使netinfo.isConnected()的计算结果为true且不为null。当我在调用类的if条件中得到值时,在调试器中检查时,我得到“JDI线程评估遇到了一个问题”。它的计算结果为true,因此我得到了成功消息。为什么我会看到这种行为?如何正确评估断开连接方法的结果 Cal

这可能有些愚蠢,但我有一个活动类从非活动类中调用一个方法。当我在Eclipse调试器中逐步执行此操作时,返回true和返回false都会在计算netinfo对象的if条件下执行,并且isOnline方法返回false,即使netinfo.isConnected()的计算结果为true且不为null。当我在调用类的if条件中得到值时,在调试器中检查时,我得到“JDI线程评估遇到了一个问题”。它的计算结果为true,因此我得到了成功消息。为什么我会看到这种行为?如何正确评估断开连接方法的结果

Calling Main Activity Class:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


 public class Splash extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    Connection.context = this;

    // Check Internet Connection 
    if (!Connection.isOnline())
    {
        //throw some message 
        Log.d("Test","Fail!");

    }
    else 
    {
        //state something good.
        Log.d("Test","Success!");

    }


Called Non Activity Class 

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class Connection {

public static Context context;

// Check Internet Connection 



public static boolean isOnline() {    




        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    
        NetworkInfo netInfo = cm.getActiveNetworkInfo();    
        if (netInfo != null && netInfo.isConnected()) 
            {return true;} 
        else 
            {return false;}

}

}

有时,在调试时,我也会看到当前指令的奇怪行为转到奇怪的返回位置。
因此,我认为了解
isOnline
函数返回值的最佳方法是记录结果本身;差不多

boolean online = netInfo != null && netInfo.isConnected();
Log.d("test", "online returning " + online);
return online;

“返回true和返回false在if条件下执行”-非常不寻常…哈哈,这怎么可能:D.我在这里没有看到输入错误或其他东西。也许可以在那里尝试三元操作。不知道为什么两条路都会被击中,我只是试了一下。在我的手机上一切都很好。它没有任何错误或类似的事情发生。可能会清理并重建项目。有点像@Spidy建议的那样-为什么不直接使用
return((netInfo!=null)&&(netInfo.isConnected())