有没有办法在调用Camera.takePicture方法两秒后拍照?出于某种原因,我不想使用处理程序/计时器来安排调用takePicture。
准确地说,我想使用不同的解决方案而不是以下方法:
final Handler handler = new Handler();
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
<here takePicture is invoked>
}
});
}
}, 2000);
答案 0 :(得分:0)
您可以将AlarmManager
与PendingIntent
一起使用并处理Activity.onNewIntent
方法中的相机捕捉,但对于您要解决的问题,这是一个非常令人困惑的解决方案更好地使用AlarmManager
是安排任务,以便即使用户退出您的应用程序也可以执行它们。与使用Handler
相比,此解决方案还需要更多代码,并且精度/可靠性更低,效率更低。
编辑:您还可以使用ScheduledThreadPoolExecutor
和Runnable
。
(个人意见如下)如果您正在探索Android中可用于执行定时任务的API,那没关系,但我不会使用AlarmManager
来安排已经Activity
内的定时任务运行
如果您只是希望让代码更有条理,可以创建一个实现Runnable
的内部类,并按照以下方式安排您的操作:
class MyCameraActivity extends Activity
{
class TakePictureTask implements Runnable
{
public void run()
{
MyCameraActivity.this.takePicture();
}
}
void scheduleCameraShot()
{
(new Handler(this.getMainLooper())).postDelayed(new TakePictureTask(), 2000);
}
}