在 if 条件中组合 2 个方法调用

combining 2 method calls in an if-condition

我有两个函数,我想同时调用它们
第一个问题:如果两者都为真,一些操作将执行(在这个例子中添加标志)。这样称呼他们正确吗?

    if (getCallId()==1 & getCallState()==1 )
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
            | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

          | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

            | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
public int getCallState()
{
    return MiniSipService.m_callState;
}
    public int getCallId()
{
    return MiniSipService.m_callId;
}

第二个问题:如果我想否定其中一个功能,我会怎么做?

在Java中,&是按位与,|是按位或。对于逻辑运算,您应该使用逻辑运算符 &&||.

使用短路 AND 运算符会更正确:

if (getCallId()==1 && getCallState()==1 )

或者更好,将方法更改为 return 布尔值:

public boolean getCallState()
{
    return MiniSipService.m_callState == 1;
}

public boolean getCallId()
{
    return MiniSipService.m_callId == 1;
}

并将条件更改为:

if (getCallId() && getCallState())

当然,如果 m_callIdm_callState 可以有两个以上的状态,这个改变就没有意义了,但我假设他们有两个状态基于你的问题的措辞:

I want to call both of them and if both of them are true...