마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

TextView 시간 출력 1초단위 자동 갱신 소스 오류. 어디가 문제인가요?

0 추천

시간은 아예 뿌려지지도 않고 1초후에 앱이 자동으로 종료되어버리네요.

protected void onResume() {
  
  Thread thread = new Thread(new Runnable(){
   @Override
   public void run(){
    try{
     Thread.sleep(1000);
    } catch (Exception e){
     e.printStackTrace();
    }
    
    final TextView timertxt01 = (TextView) findViewById(R.id.TimerView01);
    final TextView timertxt02 = (TextView) findViewById(R.id.TimerView02);
    
    final Calendar c = Calendar.getInstance();
    final int Year = c.get(Calendar.YEAR);
    final int Month = c.get(Calendar.MONTH);  // 1월(0), 2월(1)...
    final int Day = c.get(Calendar.DAY_OF_MONTH);
    final int DayOfWeek = c.get(Calendar.DAY_OF_MONTH); // 일요일(1), 월요일(2)...
    final int Hour = c.get(Calendar.HOUR_OF_DAY);  // HOUR는 12시간, HOUR_OF_DAY는 24시간
    final int Minute = c.get(Calendar.MINUTE);
    final int Second = c.get(Calendar.SECOND);
    final int AmPm = c.get(Calendar.AM_PM);  // AM(0), PM(1)
    
    String stringDayOfWeek[] = {"", "일", "월", "화", "수", "목", "금", "토"};
  String stringAmPm[] = {"오전", "오후"};
          timertxt01.setText(Year + "." + (Month+1) + "." + Day);
          timertxt02.setText(Hour + " : " + Minute);
    
   }
  });
  thread.start();
 }

 

개님의습성 (2,500 포인트) 님이 2013년 4월 24일 질문
저 그냥 지나가는 나그네인데..
궁금해서여
final은 꼭 해야되는거에여?

2개의 답변

+2 추천
 
채택된 답변
아래 짜자자잔 님의 답변에 이어서,

Thread 가 1초후에 종료가 되네요.

Thread 내부를

while (true) {

...

}

등으로 반복 시켜서, 종료하지 않고 계속 동작 하도록 만드셔야 합니다.
JINASYS (5,630 포인트) 님이 2013년 4월 25일 답변
개님의습성님이 2013년 4월 25일 채택됨
+2 추천
쓰레드안에서  UI 를  건드렸네요

 

UI 변경하는부분을 runOnUiThread () 로 감싸주세요
짜자자잔 (500 포인트) 님이 2013년 4월 24일 답변
...