Java if 语句在服务条件下不起作用
Java if statement not working on a condition of a service
我在 android studio 中创建了一个应用程序,它使用后台服务,该服务具有启动秒计数器的方法。我创建了一个 if 语句来测试秒数是否为 0,当我调试时,该值似乎是正确的,但条件直接跳到 else 语句,我无法弄清楚为什么。
public void checkService(){
long secs = seconds;
String str = String.valueOf(secs);
if(str == "0")
{
Toast.makeText(this, "Not started", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Running", Toast.LENGTH_SHORT).show();
}
}
即使值为0也跳到第二个esle。图片显示了我调试时str的值。
你不应该用 ==
测试对象。您应该使用 .equals
代替:
if(str.equals("0"))
{
Toast.makeText(this, "Not started", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Running", Toast.LENGTH_SHORT).show();
}
另一个post回答的一些解释:
我在 android studio 中创建了一个应用程序,它使用后台服务,该服务具有启动秒计数器的方法。我创建了一个 if 语句来测试秒数是否为 0,当我调试时,该值似乎是正确的,但条件直接跳到 else 语句,我无法弄清楚为什么。
public void checkService(){
long secs = seconds;
String str = String.valueOf(secs);
if(str == "0")
{
Toast.makeText(this, "Not started", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Running", Toast.LENGTH_SHORT).show();
}
}
即使值为0也跳到第二个esle。图片显示了我调试时str的值。
你不应该用 ==
测试对象。您应该使用 .equals
代替:
if(str.equals("0"))
{
Toast.makeText(this, "Not started", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Running", Toast.LENGTH_SHORT).show();
}
另一个post回答的一些解释: