我正在制作一个用于实时图像处理的应用程序。为此,我提供了一项服务,无需使用用户界面即可捕获图像。现在,我想一次又一次地启动这项服务,以便每次服务启动时,它会拍摄一张图像,处理它,然后重新开始等等......
我这样做是通过在服务进程结束时启动一个计时器,然后在该计时器的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();
有人可以帮我吗? “计时器已完成”出现在日志中,但服务不会再次启动。
答案 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)
使用在后台运行的服务,然后,每次你想使用图片时都会启动一个帖子。