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

안드로이드 현재시간 구하기(시간지나게)

0 추천
long now;

Date date;

now = System.currentTimeMillis();
  date = new Date(now);
  SimpleDateFormat sdfnow = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  String strnow = sdfnow.format(date);

이렇게 시간을 구현하는데 딱 실행했을때 시간만 나오네요

시간을 계속 흘러가게할때는 어떻게해야하나요?
익명사용자 님이 2014년 8월 1일 질문

3개의 답변

0 추천
while 문 사용해서 계속 돌려야죠 머 ㅎ
jeongupark (710 포인트) 님이 2014년 8월 1일 답변
0 추천
Thread, Timer, Handler, Alram, while, for 등으로 계속 시간 읽어서 바꿔줘야죠.
q1212 (26,020 포인트) 님이 2014년 8월 1일 답변
0 추천
BroadcastReceiver mBR;
private final SimpleDateFormat sdfnow = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
private TextView sdfnow_for_tv;

@Override
public void onStart()
{
    super.onStart();
    mBR = new BroadcastReceiver() {
            @Override
            public void onReceive(Context ctx, Intent intent)
            {
                if (intent.getAction().compareTo(Intent.ACTION_TIME_TICK) == 0) {
                    sdfnow_for_tv.setText(sdfnow.format(new Date()));
                    // Update your thing
            }
        }
    };

    registerReceiver(mBR, new IntentFilter(Intent.ACTION_TIME_TICK));
}

@Override
public void onStop()
{
    super.onStop();
    if (mBR!= null)
        unregisterReceiver(mBR);
}

 

위는 BroadcastReceiver를 이용한 방법입니다. (1분마다 업데이트되는 방식)

아래는 Thread를 이용하여 매초마다 업데이트되는 방식입니다.

Thread t = new Thread() {

  @Override
  public void run() {
    try {
      while (!isInterrupted()) {
        Thread.sleep(1000);
        runOnUiThread(new Runnable() {
          @Override
          public void run() {
             updateYOURthing();
          }
        });
      }
    } catch (InterruptedException e) {
    }
  }
};

t.start();


///////////////////
private void updateYOURthing() {
  now = System.currentTimeMillis();
  date = new Date(now);
  SimpleDateFormat sdfnow = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  String strNow = sdfNow.format(date);
  tv.setText(strNow);
}

 

익명사용자 님이 2014년 8월 1일 답변
...