我有这个作为服务运行的线程:
public void run() {
try {
while(true) {
Thread.sleep(timeInterval);
results = sendGetMessage();
b.putString("results", results);
receiver.send(2, b);
}
} catch (InterruptedException e) {
results = e.toString();
}
this.stop();
}
我想编写一个简单的函数,它将检查我的应用程序是否仍在运行(为了替换我写的永恒(ture))。 类似于:while(isMyAppRunning)。 我现在的问题是,即使我正在关闭应用程序,该服务仍在继续运行.. 有人可以请善意并给我一个代码示例吗?
答案 0 :(得分:0)
反过来做。在此running
子类中创建一个布尔标志Thread
。以true
开头,并公开shutdown()
方法,将其设置为false
。从Activity
的{{1}}方法调用此方法。
答案 1 :(得分:0)
您可以在不再需要服务时使用context.stopService(Intent service);
停止服务。您可以在服务onDestroy()
方法中执行所有维护以停止线程等。
当应用程序存在时,您可能还会将某些boolean
设置为false,尽管我自己更喜欢第一个解决方案。