2015-09-04 71 views
0

我想通過UI活動按鈕啓動Android服務。在服務運行期間停止Android服務

要開始我使用的服務:

StartService() 

,並停止我使用的服務:

StopService() 

在服務onStartCommand()我把下面的循環

for (int i = 0; i < 100 ; i++) 
{ 
    Thread.sleep(500); 
    System.out.println("Wake up and running :" + i); 
} 

嘗試在for循環運行時停止服務時出現錯誤。即使正在運行,是否可以停止正在運行的服務?

回答

0

您應該可以控制for循環。

聲明一個布爾標誌。

boolean flag = true; 

像這樣改變你的循環。

for (int i = 0; i < 100 ; i++) 
{ 
    if(flag==true){ 
    Thread.sleep(500); 
    System.out.println("Wake up and running :" + i); 
    }else{ 
    break; 
    } 
} 

在您的onDestroy()方法中,使該標誌爲false,以便for循環將獲得中斷並且服務將停止。

@Override 
public void onDestroy() { 
    flag=false; 
    super.onDestroy(); 
}