Android - 服务创建错误

时间:2012-09-24 16:13:38

标签: 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() {
        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-24 21:34:40.869:E / AndroidRuntime(12393):致命异常:主要   09-24 21:34:40.869:E / AndroidRuntime(12393):java.lang.RuntimeException:无法创建服务com.example.find.your.friend.iith.updateService:java.lang.IllegalThreadStateException:线程已经启动。

你能告诉我我哪里错了吗?

2 个答案:

答案 0 :(得分:0)

您无法启动已存在的线程。当while(true)永久执行时,thr.start()会一次又一次地被调用。尝试:

while (true) {

    // Some code1

    if(!thr.isAlive()) {
        thr.start();
    }
    while(thr.isAlive()){}

    //some code 2
}

答案 1 :(得分:0)

为什么不使用闹钟服务?这是解决问题的最佳方案。