Вчера я запрограммировал собственные цифровые часы. Я использовал блог Google: http://android -developers.blogspot.com / 2007/11 / stitch-in-time.html для помощи.
Следующий код является результатом.
Мой вопрос. Это эффективный способ, чтобы обновить дескриптор с помощью SystemClock.uptimeMillis ()? Я подумал, что было бы лучше, если бы вовремя что-то вроде слушателя меняло.
Второй вопрос. Эффективно ли для процессора использовать команду DateFormat.getTimeInstance () для получения времени? Я использую его, потому что не знаю, как рассчитать фактическое время из System.currentTimeMillis ().
public class TextClock extends Activity {
private TextView mTimeLabel;
private Handler mHandler = new Handler();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTimeLabel = (TextView) findViewById(R.id.timeLabel);
}
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
String currentTimeString = DateFormat.getTimeInstance().format(new Date());
String currentDateString = DateFormat.getDateInstance().format(new Date());
mTimeLabel.setText(currentDateString + "\n" + currentTimeString);
mHandler.postAtTime(this, (SystemClock.uptimeMillis() + 1000));
}
};
@Override
protected void onStart()
{
super.onPause();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
@Override
protected void onPause()
{
super.onPause();
mHandler.removeCallbacks(mUpdateTimeTask);
}
}
Спасибо за ваши комментарии.
Felix