我目前正在使用Android应用程序显示当前时间。我已经有了现在的时间,但我需要它充满活力;它应该每秒更新一次。我发现这个解决办法,但有些不对劲:在Android中使用片段显示当前时间
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Thread timerThread = null;
Runnable runnable = new CountDownRunner();
timerThread = new Thread(runnable);
timerThread.start();
}
public void doWork() {
runOnUiThread(new Runnable() {
public void run() {
try {
Date dt = new Date();
int day = dt.getDate();
int month = dt.getMonth();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = hours + ":" + minutes + ":" + seconds;
time.setText(curTime);
} catch (Exception e) {
}
}
});
}
class CountDownRunner implements Runnable {
// @Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
doWork();
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (Exception e) {
}
}
}
}
的错误是在这条线:
runOnUiThread(new Runnable() {
我认为这个错误的原因是因为我在片段实现它。它不会扩展到实现Thread所需的Activity。
我试图搜索并找到一个可能的答案,其中我应该需要一个活动来扩展它在runOnUiThread但我还没有找到任何实现如何做到这一点。我现在有点困惑和困惑。 。
这可能会帮助你更好地实现它。这是官方Android TextClock的源代码:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/TextClock.java – Milan
哇。这是非常棒的信息。我会检查这一点。谢谢@Milanix。 – princepiero