Android(安卓)获取时间实时更新UI
16lz
2022-03-15
第一种:使用Handler获取
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); time= (TextView) findViewById(R.id.time); new TimeHandler().start();// getTime()//第二种方法 } class TimeHandler extends Thread{ @Override public void run() { super.run(); do{ try { Thread.sleep(1000); Message message=new Message(); message.arg1=5; handler.sendMessage(message); } catch (Exception e){ } }while (true); } } private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: long sysTime = System.currentTimeMillis(); CharSequence sysTimeStr = DateFormat.format("hh:mm:ss", sysTime); time.setText(sysTimeStr); //更新时间 break; default: break; } } }; /** * 第二种方式 使用Handler * */ private Handler handlers=new Handler(); private void getTime(){ Timer timer=new Timer(); TimerTask timerTask=new TimerTask() { @Override public void run() { SimpleDateFormat format=new SimpleDateFormat("HH:mm"); final String times=format.format(new Date()); handler.post(new Runnable() { @Override public void run() { time.setText(times); } }); } }; timer.schedule(timerTask,0,1000); }
第二种:使用服务
public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); init(); //每隔一秒发送一次广播 timer.schedule(new TimerTask() { @Override public void run() { sendTimeChangedBroadcast(); } },1000,1000); } private void init() { timer=new Timer(); sdf = new SimpleDateFormat("yyyy年MM月dd日 "+"hh:mm:ss"); timeIntent = new Intent(); bundle = new Bundle(); } /** * 发送广播,通知UI层时间已改变 */ private void sendTimeChangedBroadcast(){ bundle.putString("time", getTime()); timeIntent.putExtras(bundle); timeIntent.setAction(TimeServiceActivity.TIME_CHANGED_ACTION); //发送广播,通知UI层时间改变了 sendBroadcast(timeIntent); } /** * 获取最新系统时间 * @return */ private String getTime(){ return sdf.format(new Date()); }
Demo下载
更多相关文章
- Android(安卓)jetpack Room数据库(一)基本使用
- android mapview
- android 应用选择器的使用
- android 中获取屏幕大小
- RemoteViews使用setImageResource出错
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程