public class MyBackgroundService extends Service {
private Handler mHandler = new Handler();
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mHandler.postDelayed(mRunnable, 1000); //1秒钟检查一次日期
return START_STICKY;
}
@Override
public void onDestroy() {
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
// 在这里检查当前日期
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String currentDate = dateFormat.format(new Date());
if (currentDate.equals("2022-05-01")) {
//Do Something
}
mHandler.postDelayed(mRunnable, 1000);
}
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
startService(new Intent(MainActivity.this, MyBackgroundService.class));
这样在后台服务中就会检查当前日期,并执行相应的操作。注意在Service中检查日期需要使用线程或者handler来更新UI,否则会出错。