Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和Void返回语句_Java_Android_Return - Fatal编程技术网

Java和Void返回语句

Java和Void返回语句,java,android,return,Java,Android,Return,我开发了一个android应用程序,我知道返回在一个空洞内,返回方法将打破流动。但是,android应用程序不会返回,而是继续执行该块旁边的代码 例如: public static void displayImage(String img){ if(img.contains("http")){ loadImage(img); return; } Uri uri = Uri.parseUri(img); // even though it

我开发了一个android应用程序,我知道返回在一个空洞内,返回方法将打破流动。但是,android应用程序不会返回,而是继续执行该块旁边的代码

例如:

public static void displayImage(String img){

    if(img.contains("http")){
        loadImage(img);
        return;
    }
    Uri uri = Uri.parseUri(img); // even though it hit the return statement above, it continued to this block
    .....
}
即使返回,它将继续调用此块旁边的方法。这是我的编译问题吗?还是Android中的Java在调试时的工作方式?我被难住了,请帮我理解

更新:准确地说,该方法是一种静态方法

详细说明

我的android应用程序支持dropbox,正如我在我的
MainActivity.java

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == DBX_CHOOSER_REQUEST) {
        if (resultCode == Activity.RESULT_OK) {
            DbxChooser.Result result = new DbxChooser.Result(data);
            ..
            ContentHelper.displayImage(result.getData().toString());
        } else {
            // Failed or was cancelled by the user
public static void displayImage(String img){

        if(img.contains("http")){
            loadImage(img);
            return;
        }
        Uri uri = Uri.parseUri(img); // even though it hit the return statement above, it continued to this block
        .....
        //load some activity etc.,
    }
现在在我的
ContentHelper.java

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == DBX_CHOOSER_REQUEST) {
        if (resultCode == Activity.RESULT_OK) {
            DbxChooser.Result result = new DbxChooser.Result(data);
            ..
            ContentHelper.displayImage(result.getData().toString());
        } else {
            // Failed or was cancelled by the user
public static void displayImage(String img){

        if(img.contains("http")){
            loadImage(img);
            return;
        }
        Uri uri = Uri.parseUri(img); // even though it hit the return statement above, it continued to this block
        .....
        //load some activity etc.,
    }
因为这个displayImage能够从SD卡加载图像以及它所拥有的if block和return语句的任何链接。(我知道我可以把
if..else
放在上面,然后在上面创建一个作品。但我的问题是为什么它在
返回时没有中断;


谢谢

因为代码运行的环境在模拟器或外部设备上,所以可能是eclipse中显示调试信息的代码与外部环境中实际运行的代码不一致


清理、重建和重新安装应用程序肯定会解决问题。

如果条件评估为true,是否确定该条件为true?如果调用return,该方法将停止执行。这也不例外。你确定img包含http吗???顺便说一句,java将100%返回它。然后,要么调试器向您显示与正在执行的代码不同的代码,要么在
img
不包含
“http”
时再次调用该方法。如果您点击了
return
语句,那么程序将不会继续执行以下语句。您设备上安装的代码可能与您在eclipse中看到的代码不同。尝试清理、构建并重新安装应用程序。