public class Main extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
canvas = new SCanvas(this);
setContentView(canvas);
}
private SCanvas canvas;
}
public class SCanvas extends View{
public SCanvas(Context context) {
super(context);
System.out.println("start");
handler.sendEmptyMessageAtTime(0, Delay);
}
private int Delay = 1000;
public void onDraw(Canvas canvas){
System.out.println("Draw!");
}
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
System.out.println("Handle!");
invalidate();
handler.sendEmptyMessageAtTime(0, Delay);
}
};
}
왜 안될까요?! start랑 handle!은 나와요!!
그런데 draw가 안나와요!! 왜이럴까요?????




public class SCanvas extends View{
public SCanvas(Context context) {
super(context);
System.out.println("start");
handler.sendEmptyMessageAtTime(0, Delay); // 주석처리
}
private int Delay = 1000;
public void onDraw(Canvas canvas){
System.out.println("Draw!");
}
//아래 핸들러부분 주석처리
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
System.out.println("Handle!");
invalidate();
handler.sendEmptyMessageAtTime(0, Delay); }
};
}
핸들러부분 주석처리하시고 로그창을 확인해보세요 핸들러는 구현하셧지만 온드로우를 재호출하는 부분은 없네요..
주석처리하시면 Draw뜨는걸 확인하실수 있으실거에요 딱 한번만 출력되지만..ㅜㅜ