gpt4 book ai didi

java - 每 5 分钟检查一次时间并将其与按钮的时间进行比较 - Android

转载 作者:行者123 更新时间:2023-12-01 04:18:30 25 4
gpt4 key购买 nike

我有一个名为 EventButton 的类,它扩展了 Button。

所有按钮的设置都在此类中,onClick() 等。

我还有一个带有 ScrollView 的主页 Activity

当用户按下菜单按钮时,EventButtons 将添加到 Home Activity 的 ScrollView 中。我不实例化一个对象,我只是调用 new EventButton()

当用户单击该按钮时,将显示一个对话框,用户设置“事件”的名称和“事件”的时间。

然后,名称和时间将显示在主页 Activity 的 scollview 内的该按钮上。

我的问题是,如何每隔(比如 5 分钟)刷新 EventButton 以检查其上设置的时间是否已过。我尝试过 TimerTask 和 Timer 以及 Handler 但似乎都不起作用。 TimerTask一直崩溃,我还发现在android中使用Handler更好。

    private void scheduleDelay() {

EventButton.this.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int mHour = calendar.get(Calendar.HOUR_OF_DAY);
int mMinute = calendar.get(Calendar.MINUTE);

if(EventButton.hour < mHour || EventButton.minute < mMinute) {
EventButton.this.setBackgroundColor(Color.RED);
}
EventButton.this.postDelayed(this, 5);
}
}, 5);
}

当用户在AlertDialog中设置EventButton的名称和时间时,会调用上面的函数。

更新

问题似乎根本不在于处理程序。似乎当我尝试获取小时和分钟时,它崩溃了。

最佳答案

将您的使用时间更改为 5 分钟 (5 * 60 * 1000),而不是 5 毫秒:

private void scheduleDelay() {

EventButton.this.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int mHour = calendar.get(Calendar.HOUR_OF_DAY);
int mMinute = calendar.get(Calendar.MINUTE);

if(EventButton.hour < mHour || EventButton.minute < mMinute) {
EventButton.this.setBackgroundColor(Color.RED);
} else {
// wait another 5 minutes
scheduleDelay();
}

}
}, 300000);
}

关于java - 每 5 分钟检查一次时间并将其与按钮的时间进行比较 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com