2012-11-02 54 views

回答

1

只要「自寫的方法」不分叉線程或以其他方式異步執行某些操作,就很安全。

+0

還有一個問題:方法執行的最大時間是多少? – Xander

+1

@美林:好吧,最終太陽會燒壞或去新星什麼的。我會盡力在那之前結束。 :-) – CommonsWare

+0

Looooooooool XD – Xander

2

調用方法並不意味着你離開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不能離開。

+0

可以與'異步'調用... –

+0

@AkhilJain我想我所說的是,直接的方法調用不能是異步的,也可以寫入調用方法內聯。而且你不需要「自寫的方法」來啓動超出喚醒時間的異步事件。 – zapl

相關問題