最近在开发过程中遇到一个需求,要求间隔固定时间主动更新界面的内容。调研了之后发现可以使用Handler机制实现上述功能,记录一下。
使用Handler机制实现的逻辑是,在Activity首次创建的时候使用Handler的sendEmptyMessageDelayed方法延时发送一次消息;并重写Handler的handleMessage方法,在该方法中:1.进行页面刷新操作;2.再次使用Handler进行消息的延时发送,以此实现重复的定时刷新功能,具体代码如下:
public class MainActivity extends AppCompatActivity {
private Handler handlerSend = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
// 重写handleMessage方法
super.handleMessage(msg);
if (msg.what == 1) {
Toast.makeText(getApplicationContext(), "页面刷新成功!", Toast.LENGTH_SHORT).show();
// 再次使用handler发送信息
handlerSend.sendEmptyMessageDelayed(1, 1000);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Activity首次创建,使用Handler发送一次消息
handlerSend.sendEmptyMessageDelayed(1, 1000);
}
}
注:界面定时刷新功能也可以使用Timer定时器进行实现,感兴趣的伙伴可以自行了解~