我最近遇到了有关使用较新的Android设备进行测试的问题。我一直在使用阿尔卡特OT-980开发应用程序。
以下是我遇到的一个小问题,我无法解释。
TestClass a = new TestClass(app.this);
a.getName();
if(name != null){
Log.w(TAG,"Hello World");
}else{
Log.w(TAG,"Error");
}//Test Class
public class TestClass extends data{
public void getName(){....
try {
// URL for .txt file (currently pointing to test)
URL url = new URL("http....../name.txt");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream()));
String line;
while ((line = in.readLine()) != null) {
name = line.substring(8);
Log.w(TAG, "name-: " + name);
}
Log.w(TAG, "name" + name);
in.close();
} catch (MalformedURLException e) {
// RUN ERROR
} catch (IOException e) {
// RUN ERROR
} catch (Exception e) {
// RUN ERROR
}
}}
所以'name'是Data类中保存的公共静态String。当从服务器返回数据时,在测试类中分配'name'。 这在Alcatel上运行时工作正常但是当在Samsung S4上运行时,它似乎打印'Error'而不是'Hello World',这意味着名称为null并且尚未在Test-class中设置。我知道新设备将具有更好的规范,并且应该更快地执行代码,但它的运行就像在运行下一行代码之前没有完成方法一样。
任何意见/建议都会很棒!