第一种:使用Handler获取
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
time= (TextView) findViewById(R.id.time);
new TimeHandler().start();
}
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);
sendBroadcast(timeIntent);
}
/**
* 获取最新系统时间
* @return
*/
private String getTime(){
return sdf.format(new Date());
}
Demo下载