android 实时获取更新系统时间
时间: 2023-10-23 21:10:48 浏览: 105
要实时获取更新的系统时间,可以使用 `Handler` 和 `Runnable`,在 `Runnable` 中获取当前时间并更新 UI,然后使用 `Handler` 定时调用这个 `Runnable`。
以下是一个每秒钟更新一次系统时间的示例代码:
```java
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private Handler mHandler = new Handler();
private TextView mTextView;
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
// 获取当前时间
Date date = new Date();
// 设置时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
// 格式化时间为字符串
String currentTime = sdf.format(date);
// 将时间显示到 TextView 上
mTextView.setText(currentTime);
// 每秒钟更新一次
mHandler.postDelayed(this, 1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textView);
// 开始更新时间
mHandler.post(mUpdateTimeTask);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止更新时间
mHandler.removeCallbacks(mUpdateTimeTask);
}
}
```
在上述代码中,我们首先定义了一个 `mUpdateTimeTask` 的 `Runnable`,它会在每次运行时获取当前时间并更新 UI,并使用 `Handler` 定时调用自己,以实现每秒钟更新一次的效果。然后在 `onCreate` 方法中启动这个 `Runnable`,在 `onDestroy` 方法中停止它。最后,将显示时间的 `TextView` 赋值给 `mTextView` 变量,以便在 `Runnable` 中使用。
阅读全文