Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个重置它的布尔值';午夜有多少钱?_Java_Android_Boolean - Fatal编程技术网

Java 创建一个重置它的布尔值';午夜有多少钱?

Java 创建一个重置它的布尔值';午夜有多少钱?,java,android,boolean,Java,Android,Boolean,有没有一种简单的方法可以创建一个布尔值,在午夜将其值重置为false 我想在使用if语句时 Calendar now = Calendar.getInstance(); Calendar midnight = Calendar.getInstance(); midnight.add(Calendar.HOUR_OF_DAY, 23); midnight.add(Calendar.MINUTE,59); midnight.add(Calendar.SECOND, 5

有没有一种简单的方法可以创建一个布尔值,在午夜将其值重置为false

我想在使用if语句时

Calendar now = Calendar.getInstance();
    Calendar midnight = Calendar.getInstance();
    midnight.add(Calendar.HOUR_OF_DAY, 23);
    midnight.add(Calendar.MINUTE,59);
    midnight.add(Calendar.SECOND, 59);

    if (now == midnight){
        boolean = false;
    }
但它只有在活动正在运行时才有效,即使应用程序关闭,我也需要它运行


我知道我可以使用AlarmManager共享首选项来实现这一点,但我想知道是否有一种更简单的方法我没有想到。

您可以简单地为此创建一种“午夜重置布尔”类。每次加载活动时获取值,如果为false,则将计数器递增1

package com.bemoty.booleantest;

import java.util.Calendar;
import java.util.Date;

public class MidnightBoolean {

    private boolean value = true;
    private long lastChanged = 0L;

    public MidnightBoolean(boolean startValue) {
        this.setValue(startValue);
    }

    public void setValue(boolean value) {
        this.value = value;
        this.lastChanged = System.currentTimeMillis();
    }

    public boolean getValue() {
        Calendar lastChangedCalendar = Calendar.getInstance();
        Calendar timeNowCalendar = Calendar.getInstance();
        lastChangedCalendar.setTime(new Date(lastChanged));
        if ((lastChangedCalendar.get(Calendar.DAY_OF_MONTH) - timeNowCalendar.get(Calendar.DAY_OF_MONTH)) < 0) {
            this.setValue(false);
        }
        return this.value;
    }
}
package com.bemoty.booleanstest;
导入java.util.Calendar;
导入java.util.Date;
公共课午夜{
私有布尔值=真;
专用长lastChanged=0L;
公共午夜布尔值(布尔起始值){
这个.setValue(startValue);
}
公共void设置值(布尔值){
这个值=值;
this.lastChanged=System.currentTimeMillis();
}
公共布尔getValue(){
Calendar lastChangedCalendar=Calendar.getInstance();
Calendar timeNowCalendar=Calendar.getInstance();
lastChangedCalendar.setTime(新日期(lastChanged));
如果((lastChangedCalendar.get(Calendar.DAY\u OF\u MONTH)-timeNowCalendar.get(Calendar.DAY\u OF\u MONTH))<0){
此.setValue(false);
}
返回此.value;
}
}

为什么需要使用intentService或作业调度器来执行此类任务?如果用户没有单击按钮,我希望跟踪。单击此按钮可将布尔值更改为true。在一天结束时,如果布尔值为false(按钮未被单击),我将向错过的单击进度条添加一个增量。如果它返回true,我将向单击进度条添加一个增量。这就是为什么我需要布尔值在午夜将自身返回false,以便第二天代码重复自身。