gpt4 book ai didi

java - 从 switch 语句返回 null 的字符串语句

转载 作者:行者123 更新时间:2023-12-01 12:41:34 25 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,该应用程序允许您在 VideoView 中观看流媒体视频。我有一种方法允许您通过 switch 语句选择四个流之一。这是正常工作的,代码如下:

public void playStream(int position) {
switch (position) {
case 0:
streamOn = true;
streamPos = 0;
logString = "M";
posSelected = "0";
break;
case 1:
streamOn = true;
streamPos = 1;
logString = "J";
posSelected = "1";
break;
case 2:
streamOn = true;
streamPos = 2;
logString = "B";
posSelected = "2";
break;
case 3:
streamOn = true;
streamPos = 3;
logString = "N";
posSelected = "3";
break;
default:
break;
}
checkStreamLink(position);

Log.wtf(logString, posSelected);
Log.wtf(logString, streamURL);
}

无法正常工作的是,在这个选择流的方法中,我调用了另一个运行线程的方法 ( checkStreamLink(); )。根据您选择的流,线程将调用另一个方法来打开网页、读取一行文本,然后将该文本设置为 String streamURL。这两个方法的代码如下:

public void checkStreamLink(final int position) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
switch (position) {
case 0:
streamURL = getStreamLink("LINK 0 GOES HERE");
break;
case 1:
streamURL = getStreamLink("LINK 1 GOES HERE");
break;
case 2:
streamURL = getStreamLink("LINK 2 GOES HERE");
break;
case 3:
streamURL = getStreamLink("LINK 3 GOES HERE");
break;
default:
break;
}
}
catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}


public String getStreamLink (String textSource) {
URL streamURL;
String errorParsingURL = "ERROR PARSING URL";
try {
streamURL = new URL(textSource);
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(streamURL.openStream()));
String StringBuffer;
String stringText = "";
while ((StringBuffer = bufferReader.readLine()) != null) {
stringText += StringBuffer;
}
bufferReader.close();
return stringText;
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return errorParsingURL;
}

我遇到的问题是,String streamURL 在首次使用时返回 null,如我所包含的 Log 语句所证明的那样。此后每次选择流时,String streamURL 都会返回您上次选择流时应收到的文本。我似乎无法弄清楚为什么会发生这种情况,如果有任何帮助,我将不胜感激。

最佳答案

您得到的是 null,因为 getStreamLink 在您打印结果后返回其值。在 getStreamLink 方法末尾打印结果日志消息,以查看返回的实际值,并在此时调用任何其他功能。

关于java - 从 switch 语句返回 null 的字符串语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25050670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com