Java 如何在Android中以字符串格式自动刷新当前时间
现在我已经生成了一个显示当前时间的字符串。我想知道如何自动刷新该字符串Java 如何在Android中以字符串格式自动刷新当前时间,java,android,Java,Android,现在我已经生成了一个显示当前时间的字符串。我想知道如何自动刷新该字符串格式,以便可以对其进行更新。提前谢谢 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss"); String format = simpleDateFormat.format(new Date()); Handler mHandler=新的InnerHandler(此); 私有最终静态整数更新\当前\时间=100;
格式
,以便可以对其进行更新。提前谢谢
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
String format = simpleDateFormat.format(new Date());
Handler mHandler=新的InnerHandler(此);
私有最终静态整数更新\当前\时间=100;
文本视图时间;
@凌驾
受保护的void onStart(){
super.onStart();
新线程(newrunnable()){
@凌驾
公开募捐{
如果(正在运行){
mHandler.sendEmptyMessage(更新当前时间);
试一试{
睡眠(1000);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
}
}).start();
}
私有静态类InnerHandler扩展了Handler{
私人最终WeakReference weakObj;
InnerHandler(eActivity obj){
this.weakObj=新的电子活动(obj);
}
@凌驾
公共无效handleMessage(消息消息消息){
超级handleMessage(msg);
final EgActivity obj=this.weakObj.get();
如果(obj!=null
&&!obj.isFinishing()){
开关(msg.what){
案例更新\当前\时间:
SimpleDataFormat SimpleDataFormat=新的SimpleDataFormat(“dd-MM-yyy-hh:MM:ss”);
字符串格式=SimpleDataFormat.format(新日期());
obj.tvTime.setText(格式);
打破
}
}
}
}
什么是“刷新字符串格式”?是否更改呈现给用户的文本格式?或者用另一个日期时间值更新内容?这两个问题已经在Stack Exchange中讨论过很多次了。你在发帖前搜索过吗?
Handler mHandler = new InnerHandler(this);
private final static int UPDATE_CURRENT_TIME = 100;
TextView tvTime;
@Override
protected void onStart() {
super.onStart();
new Thread(new Runnable() {
@Override
public void run() {
if(isRunning){
mHandler.sendEmptyMessage(UPDATE_CURRENT_TIME);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
private static class InnerHandler extends Handler {
private final WeakReference<EgActivity> weakObj;
InnerHandler(EgActivity obj) {
this.weakObj = new EgActivity<>(obj);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
final EgActivity obj = this.weakObj.get();
if (obj != null
&& !obj.isFinishing()) {
switch (msg.what) {
case UPDATE_CURRENT_TIME:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
String format = simpleDateFormat.format(new Date());
obj.tvTime.setText(format);
break;
}
}
}
}