我有一个简单的儿童Android应用程序,目标是在他们的位置拖放数字(例如:空方格中的方块)等等。
所以我可以做这样的事情,我在OnTouchListener和OnDragListener之间使用了一个组合,到目前为止,我没有遇到任何问题,但这个问题与同步有关。
我希望第一个拖动cercle的动作在完成之后等待5000ms ,然后用户可以将一个正方形拖放到他的位置。
我使用过处理程序,问题是操作是在完成操作之前处理的,而不是之后处理的。
这里是我在DragEvent.ACTION_DROP案例中所做的代码:
switch (dragEvent)
{
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
if (view.getId() == R.id.fullsquare)
{
view.animate()
.x(square.getX())
.y(square.getY())
.setDuration(700)
.start();
Toast toast = Toast.makeText(getApplicationContext(), "Great, it's a square", Toast.LENGTH_LONG);
toast.show();
}
break;
}
编辑:正如我在下面的评论中提到的,不同之处在于我希望第二个动作在第一个动作启动和完成5000毫秒后发生,处理程序和Java TimerTasks做的是什么,它们迫使我在启动第一个操作之前等待5000毫秒。