我想在抽两张抽签之间暂停一下。我已经尝试Thread.sleep
,处理程序,asyncTask
,并得到了相同的结果 - 当活动启动时,我必须等待一段时间,我设置了第一次绘制,只有当我再次调用同样的方法(测试)时,我看到第二次绘制,而不是再次看到第一名。有我的代码:在两次抽签之间暂停
public void test(){
button.setClickable(false);
button.setBackgroundColor(Color.DKGRAY);
view.setFromAtoB(true);
view.invalidate();
AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
return null;
}
@Override
protected void onPostExecute(Void result) {
view.setMoveAB(true);
view.postInvalidate();
button.setBackgroundColor(Color.GRAY);
button.setClickable(true);
}
};
task.execute((Void[])null);
问题在哪里?为什么我不能看到某种和谐,第一次画,暂停,第二次画? :)也许我已经阻止了UI线程。对于绘图我使用画布。在onDraw
方法我做了一些计算,调用drawRodsAndDiscs
方法:
private void drawRodsAndDiscs(Canvas canvas){
Paint paint = new Paint();
drawRods(canvas);
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.STROKE);
for (Rect disc : discs) {
canvas.drawRect(disc, paint);
}
}