我正在使用以下代码来停止我的服务
Intent intent = new Intent(MainActivity.this, UsageRecorderService.class);
stopService(intent);
这是我的无限期服务
public class UsageRecorderService extends IntentService {
public UsageRecorderService() {
super("UsageRecorder");
}
@Override
protected void onHandleIntent(Intent intent) {
while (true) {
UsageRecorder.recordUsages(this, false);
SystemClock.sleep(10000);
}
}
}
为什么不停止我的服务?
这段代码可以工作
public class UsageRecorderService extends IntentService {
private boolean mStop = false;
public UsageRecorderService() {
super("UsageRecorder");
}
public final Object sLock = new Object();
public void onDestroy() {
synchronized (sLock) {
mStop = true;
}
}
@Override
protected void onHandleIntent(Intent intent) {
while (true) {
synchronized (sLock) {
if (mStop) break;
}
UsageRecorder.recordUsages(this, false);
SystemClock.sleep(10000);
}
}
}
您可以使用stopService
Intent intent = new Intent(MainActivity.this, UsageRecorderService.class);
stopService(intent);
我也推荐阅读服务指南了解那里发生了什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)