这个问题在这里已有答案:
我在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的值 .
1 回答
您永远不应该使用
==
测试对象 . 您应该使用.equals
代替:来自另一篇文章的答案的一些解释:https://stackoverflow.com/a/513839/2174489