Java和Void返回语句
我开发了一个android应用程序,我知道返回在一个空洞内,返回方法将打破流动。但是,android应用程序不会返回,而是继续执行该块旁边的代码 例如: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
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
.....
}
即使返回如果执行strong>,它将继续调用此块旁边的方法。这是我的编译问题吗?还是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中看到的代码不同。尝试清理、构建并重新安装应用程序。