我正在使用以下代码来停止我的服务
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);
我还建议阅读Services guide了解那里发生了什么。
关于android - 停止 Activity 中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27459885/