Android 写一个每天只执行一次的方法
时间: 2024-01-26 10:02:41 浏览: 36
你可以使用 SharedPreferences 来存储一个标志位,表示方法是否已经执行过了。
具体实现步骤如下:
1. 在应用程序启动时,读取 SharedPreferences 中的标志位。如果标志位不存在,则创建一个。
2. 判断标志位是否为今天的日期。如果是,则表示方法已经执行过了,直接返回;否则,继续执行方法。
3. 在方法执行完成后,将标志位更新为今天的日期。
下面是一个示例代码:
```java
public class MyApplication extends Application {
private SharedPreferences mSharedPreferences;
@Override
public void onCreate() {
super.onCreate();
mSharedPreferences = getSharedPreferences("my_app", MODE_PRIVATE);
if (!isMethodExecutedToday()) {
executeMethod();
updateMethodExecutedDate();
}
}
private boolean isMethodExecutedToday() {
String today = getTodayDateString();
String lastExecutedDate = mSharedPreferences.getString("last_executed_date", "");
return lastExecutedDate.equals(today);
}
private void updateMethodExecutedDate() {
String today = getTodayDateString();
mSharedPreferences.edit().putString("last_executed_date", today).apply();
}
private String getTodayDateString() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
return dateFormat.format(new Date());
}
private void executeMethod() {
// 执行方法的代码
}
}
```
在上面的代码中,我们在 Application 的 onCreate 方法中检查标志位,如果需要执行方法,则执行方法并更新标志位。注意,我们使用了 SimpleDateFormat 类来获取当前日期的字符串表示。