TextViewに時刻と日付をリアルタイムで表示したい(分単位で更新する)。現在、私はこれを持っています。これはメモリ使用とAndroidのベストプラクティスを考慮して、これを実行する最善の方法ですか? (注意:DateFormat
はjava.text.DateFormat
です)Androidで秒と時刻を更新する
private Thread dtThread;
public void onCreate(Bundle savedInstanceState) {
...
getDateAndTime();
}
private void getDateAndTime() {
dtThread = new Thread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "D/T thread started");
while (!Thread.currentThread().isInterrupted()) {
try {
update();
Thread.sleep(1000);
} catch (InterruptedException e) {
Log.d(TAG, "D/T thread interrupted");
}
}
}
public void update() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Date d = new Date();
String time = DateFormat.getTimeInstance(DateFormat.MEDIUM).format(d);
String date = DateFormat.getDateInstance(DateFormat.LONG).format(d);
TextView timeView = (TextView) findViewById(R.id.textStartTime);
TextView dateView = (TextView) findViewById(R.id.textStartDate);
timeView.setText(time);
dateView.setText(date);
}
});
}
});
dtThread.start();
}
protected void onPause() {
super.onPause();
dtThread.interrupt();
dtThread = null;
}
protected void onResume() {
super.onResume();
getDateAndTime();
}
ACTION_TIME_TICK'は私が秒単位で更新することができます 'のようにそれはいないようです。その点で、放送受信機を使用すると、私はこれを行うRube Goldbergのように思えます。 – kibibyte
真、 'ACTION_TIME_TICK'は分ごとに分単位で更新されます。しかし、日付と時刻を分単位で表示するようにテキストビューを更新したい場合は、必要なタスクを実行する必要があります。 – Dimse