首页 文章

Java if语句不能处理服务条件[重复]

提问于
浏览
-5

这个问题在这里已有答案:

我在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的值 .

enter image description here

1 回答

  • 0

    您永远不应该使用 == 测试对象 . 您应该使用 .equals 代替:

    if(str.equals("0"))
        {
            Toast.makeText(this, "Not started", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(this, "Running", Toast.LENGTH_SHORT).show();
        }
    

    来自另一篇文章的答案的一些解释:https://stackoverflow.com/a/513839/2174489

相关问题