2010-11-26 25 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處理程序在特定時間後更新UI。

+0

我在這裏建議:http://stackoverflow.com/questions/4277032/i-want-to-add-a-timer-to-my-code但由於某種原因,他打算提出有關同樣問題的問題。 – Knossos 2010-11-26 11:47:11