for( int i=0; i<100; ++i){
Log.i("LHK", "11111111111");
run.setBackgroundResource(R.drawable.ani21);
Log.i("LHK", "12222222222");
run.setBackgroundResource(R.drawable.ani23);
}
ani21과 ani23이미지가 1초간격으로 반복되면서 보이게 하고싶은데
위와같이 하면 그냥 정지된이미지만 나옵니다..
R.drawable.ani21문장 아래에
Thread.sleep(1000);이렇게 넣으면 ,try catch문으로 바꾸라는 문장이나오고..
어떻게 해야 1초간격으로 이미지가 반복되게 나올가요..
고수님들 도와주세요~~~~~~~
activity 가 종료되어도 핸들러의 메세지로 인해, 코드가 실행되면서 오류가 발생하는 경우가 많습니다.
onPause 정도에 handler.removeMessages(0) 이런식으로 메세지를 없애줄 수 있습니다.
메세지는 메세지 큐에 들어가 있다가 실행되고는 삭제됩니다.
딜레이가 있는 메세지의 경우 activity 종료 후에 실행되는 경우가 있어서 이를 예방하는 겁니다.
Handler, CountDownTimer 를 이용하시면 될 것 같습니다.
가장 쉽게 접근할 수 있는 것은 CountDownTimer를 이용하는 것 입니다.
long totalTime = 10000;
long interval = 1000;
new CountDownTimer(totalTime, interval) {
boolean flag = true;
@Override
public void onTick(long millisUntilFinished) {
run.setBackgroundResource(flag ? R.drawable.ani21:R.drawable.23);
flag = !flag;
}
@Override public void onFinish() {}
}.start();




Thread.sleep 쓰시려면 당연히 try catch 문으로 감싸야 하는게 정상입니다.
그리고, 위의 코드는 UI 쓰레드에서 동작해야 하는데, 거기에 Thread.sleep 를 넣는 것은 안되죠.
Handler 를 이용하세요. Handler 만들어서, 이미지바꾸고, 자기 자신한테 message 를 1초 후에 또 보내는
방식으로 반복 시키면 됩니다.
activity 종료될때 Handler 의 메세지 모두 없애주는 것 잊지 마시구요.