有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:我应该避免在Commonware的WakefulIntentservice中使用自写方法吗?

在我的应用程序中,我得到了CommosWare的WakefulIntentservice。从doWakefulWork方法中,我调用了几个自写方法。例如:

@Override
protected void doWakefulWork(Intent arg0) {
    exampleMethod();
}

private void exampleMethod() {
    //Stuff
}

它让我的代码保持清晰,但是当我调用自写方法时,是否有可能丢失WakeLock

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    调用一个方法并不意味着你离开doWakefulWork,它就结束了。这更像是将方法的代码行复制到调用方法

    这就是

    protected void doWakefulWork(Intent arg0) {
        exampleMethod();
    
        exampleMethod2();
    }
    
    private void exampleMethod() {
        exampleMethod2();
        exampleMethod2();
    }
    
    private void exampleMethod2() {
        print("Hello");
    }
    

    和这里做的完全一样

    protected void doWakefulWork(Intent arg0) {
        { // exampleMethod()
            { // exampleMethod2()
                print("Hello");
            }
            { // exampleMethod2()
                print("Hello");
            }
        }
    
        { // exampleMethod2()
            print("Hello");
        }
    }
    

    或者没有所有的支架

    protected void doWakefulWork(Intent arg0) {
        print("Hello");
        print("Hello");
        print("Hello");
    }
    

    因此,在调用方法时,永远不要离开doWakefulWork,因此WakeLock不能消失