我在一个发布字符串日志和计数器的线程中创建了一个带有无限循环的简单android服务。
然而,我创建的线程有时会停止(特别是如果我在设备上运行其他应用程序)并在之后随机重新启动。当然,我失去了服务的状态(即计数器重置)。
这是预期的Android行为还是我做错了什么?
public class WebService extends Service {
Thread svc_thread;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(svc_thread == null) {
svc_thread = new Thread(new Runnable() {
@Override
public void run() {
int i = 0;
while(true) {
Log.v("WebService", "Doing loop in service "+i);
i++;
try {
Thread.sleep(1000);
}catch(Exception e) {
Log.e("WebService", "Error ocurred in service thread!" + e.getMessage());
}
}
}
});
svc_thread.setName("Service Thread");
svc_thread.start();
}
return START_STICKY;
};