0

我正在制作一个用于实时图像处理的应用程序。为此,我制作了一项服务来捕获图像,而无需使用用户界面。现在,我想一次又一次地启动这个服务,这样每次服务启动时,它都会获取一个图像,处理它,然后再次启动等等......我通过在最后启动一个计时器来做到这一点服务中的进程,然后在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();

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

4

2 回答 2

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。它可以很好地处理重复发生的事件,并且专为类似场景而设计。

于 2013-06-07T14:57:53.733 回答
0

使用在后台运行的服务,然后,每次您想使用图片时启动一个线程。

于 2013-06-07T15:03:58.627 回答