Android-服务创建错误
你好,我正在用android创建一个服务。在服务中,我希望我的代码每5分钟定期运行一次。我用一根线来做同样的事情 下面是我的代码Android-服务创建错误,android,android-service,Android,Android Service,你好,我正在用android创建一个服务。在服务中,我希望我的代码每5分钟定期运行一次。我用一根线来做同样的事情 下面是我的代码 @Override public void onCreate() { super.onCreate(); Toast.makeText(this, "Service created ...", Toast.LENGTH_LONG).show(); Thread thr = new Thread() { public void run(
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this, "Service created ...", Toast.LENGTH_LONG).show();
Thread thr = new Thread() {
public void run() {
try {
sleep(20000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{}
}
};
while (true) {
// Some code1
thr.start();
while(thr.isAlive()){}
//some code 2
}
}
我得到以下错误
09-2421:34:40.869:E/AndroidRuntime(12393):致命异常:main
09-24 21:34:40.869:E/AndroidRuntime(12393):java.lang.RuntimeException:无法创建服务com.example.find.your.friend.iith.updateService:java.lang.IllegalThreadStateException:线程已启动
你能告诉我哪里出错了吗?你不能启动一个已经激活的线程。当(true)永远执行时,
thr.start()
会被反复调用。尝试:
while (true) {
// Some code1
if(!thr.isAlive()) {
thr.start();
}
while(thr.isAlive()){}
//some code 2
}
你为什么不使用报警服务?这是解决您的问题的最佳解决方案。更重要的是,您不能启动以前启动过的线程,即使它已停止。它将抛出一个非法的ThreadStateException还有什么方法可以让我的while循环“等待一段时间”,然后执行其余的代码。