在同一服务中启动一个Android服务来进行循环

时间:2013-06-07 14:54:20

标签: android image-processing android-intent

我正在制作一个用于实时图像处理的应用程序。为此,我提供了一项服务,无需使用用户界面即可捕获图像。现在,我想一次又一次地启动这项服务,以便每次服务启动时,它会拍摄一张图像,处理它,然后重新开始等等...... 我这样做是通过在服务进程结束时启动一个计时器,然后在该计时器的onFinish()方法中重启服务,如下所示:

new CountDownTimer(3000,1000){

    public void onTick(long millisUntilFinished) { }

    public void onFinish() {
        mCamera.release();
        Intent intent = new Intent("com.example.helpingproject.CameraService");
        startService(intent);
        Log.d("Tag1222", "timer finished");
    }
}.start();

有人可以帮我吗? “计时器已完成”出现在日志中,但服务不会再次启动。

2 个答案:

答案 0 :(得分:1)

您可以在服务中创建一个线程并将while循环放在那里:

new Thread(new Runnable(){
    public void run() {
    // TODO Auto-generated method stub
    while(true)
    {
       Thread.sleep(60000) 
       //REST OF CODE HERE//
    }

                    }
}).start();

但这是一个简单的快速修复,总的来说,创建一个一直睡眠的线程对于移动设备来说不是一个好的解决方案。

您应该考虑使用AlarmManager。它非常好地处理重复事件,专门针对类似场景而设计。

答案 1 :(得分:0)

使用在后台运行的服务,然后,每次你想使用图片时都会启动一个帖子。