写了一个简单的倒计时 记录一下防止遗忘
package com.tcssj.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.lang.ref.WeakReference;
public class WelcomeActivity extends AppCompatActivity {
private MyHandler myHandler;
private int time = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_welcome);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
myHandler = new MyHandler(this);
myHandler.post(runnable);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
time--;
if (time > 0) {
myHandler.postDelayed(runnable, 2000);
} else {
startActivity(new Intent(WelcomeActivity.this, MainActivity.class));
}
}
};
/**
* 声明一个静态的Handler内部类,并持有外部类的弱引用
*/
private static class MyHandler extends Handler {
private final WeakReference<WelcomeActivity> mActivty;
private MyHandler(WelcomeActivity mActivty) {
this.mActivty = new WeakReference<>(mActivty);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
//删除所有的消息
myHandler.removeCallbacksAndMessages(null);
}
}