在服务运行时停止Android服务

时间:2015-09-04 03:57:43

标签: android android-intent service

我正在尝试通过UI活动按钮启动Android服务。

要启动我使用的服务:

StartService()

要停止我使用的服务:

StopService()

在服务onStartCommand()中,我放了以下循环

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

在for循环运行时尝试停止服务时出错。即使正在运行,是否可以停止正在运行的服务?

1 个答案:

答案 0 :(得分:0)

你应该控制for循环。

声明一个布尔标志。

boolean flag = true;

像这样更改你的for循环。

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();
}