◎위챗 : speedseoul
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package arabiannight.tistory.com; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.util.Log; public class TestHandlerActivity extends Activity { private Handler mHandler; private Runnable mRunnable; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); mRunnable = new Runnable() { @Override public void run() { Intent intent = new Intent(getApplicationContext() , ResultPage. class ); startActivity(intent); } }; mHandler = new Handler(); mHandler.postDelayed(mRunnable, 5000 ); } @Override protected void onDestroy() { Log.i( "test" , "onDstory()" ); mHandler.removeCallbacks(mRunnable); super .onDestroy(); } } |
postDelayed(Runnable r , long delayMillis) "런어블객체(Runnable) 를 delayMillis 시간 후에 실행 해라. " 라는 메서드 입니다. 위의 코드에서는 5000 을 주었으니 ( 시스템시간/1000 = 현재시간 ) 5초후( 5000/1000 ) 에 실행하게 됩니다. |
removeCallBacks(Runnable r) 런어블(Runnable)을 제거 한다. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package arabiannight.tistory.com; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; public class TestTimerTaskActivity extends Activity { private TimerTask mTask; private Timer mTimer; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); mTask = new TimerTask() { @Override public void run() { Intent intent = new Intent(getApplicationContext() , ResultPage. class ); startActivity(intent); } }; mTimer = new Timer(); mTimer.schedule(mTask, 5000 ); // mTimer.schedule(mTask, 3000, 5000); } @Override protected void onDestroy() { Log.i( "test" , "onDstory()" ); mTimer.cancel(); super .onDestroy(); } } |
schedule(TimerTask task , long delay) "TimerTask를 delay 시간 만큼 후에 실행 시켜라." 라는 메서드 입니다. 만약 delay를 3초를 지정해 주면, " 3초 후에 Task를 한번만 실행 해라. " 라는 메서드가 됩니다. schedule(TimerTask task , long delay , long period) 그리고, 매개인자가 3개인 schedule 함수가 있는데요, 이 함수의 기능은, "TimerTask를 delay 시간 만큼 후에 실행 시키고, period만큼 후에 계속 반복 해라." 라는 메서드 입니다. 만약delay와 3초와 period 5초를 지정해 주면, " 3초 후에 Task를 실행하고 5초마다 반복 해라. " 라는 메서드가 되는 것 입니다. |
mTimer.cancel() 타이머의 모든 작업(TimerTask)를 취소 합니다. |