Handler定时器
在MainActivity中定义handler,在oncraete中去调用handler.sendEmptyMessageDelayed(1, 1000);(what:1,延迟时间:1000)what是 public void handleMessage(Message msg)方法里辨识的flag,handler的使用要实现一个闭环的状态,所以要在public void handleMessage(Message msg)方法里在想页面中发送一个handler.sendEmptyMessageDelayed(1, 1000),提示页面一秒之后向方法内再发送一起请求。
package com.example.healthyfood;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView main_tv;
int time = 5;
Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1) {
time--;
if (time == 0) {
//跳转
Intent intent = new Intent();
intent.setClass(MainActivity.this, HomeMenu.class);
startActivity(intent);
} else {
main_tv.setText(time + "");
handler.sendEmptyMessageDelayed(1, 1000);
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main_tv = findViewById(R.id.main_tv);
handler.sendEmptyMessageDelayed(1, 1000);
}
}