2015-09-04 72 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(); 
}