2010-11-26 2 views
0

Я попытался использовать timertask для обновления строки (через каждые 1 секунду), нарисованной с координатами фиксированной точки. Но строка не обновляется ... есть ли что-то не так в моем коде?timertask не работает!

LineRefresh.java:

package LineRefresh.xyz.com; 
import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 

public class LineRefresh extends Activity { 
DrawView drawView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    drawView = new DrawView(this); 
    drawView.setBackgroundColor(Color.WHITE); 
    setContentView(drawView); 

} 
} 

DrawView.java:

package LineRefresh.xyz.com; 
import java.util.Timer; 
import java.util.TimerTask; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.view.View; 

public class DrawView extends View { 
Paint paint = new Paint(); 

public DrawView(Context context) { 
    super(context);  
} 

@Override 
public void onDraw(final Canvas canvas) { 
    paint.setColor(Color.BLACK); 
    canvas.drawLine(50, 200, 270, 200, paint); 

    Timer timer = new Timer(); 
    TimerTask task = new TimerTask() { 
     @Override 
     public void run() { 
      paint.setColor(Color.BLACK); 
      canvas.drawLine(50, 200, 270, 200, paint); 
      } 
    }; 
    timer.schedule(task, 1000,1000); 
} 

} 

sholud я, вместо того, место TimerTask где-то в моем коде?

+0

Наличие потока в onDraw, вероятно, является одним из худших подходов к дизайну, которые я когда-либо видел на любом языке в любом проекте. – Falmarri 2010-11-26 09:49:03

ответ

1

Скорее используйте Обработчик Android для обновления интерфейса через определенное время.

+0

Я предположил, что здесь: http://stackoverflow.com/questions/4277032/i-want-to-add-a-timer-to-my-code Но по какой-то причине он намерен раздувать вопросы о том же , – Knossos 2010-11-26 11:47:11

Смежные вопросы