gpt4 book ai didi

android - 如何在 Broadcast Receiver 的接收事件中使用倒数计时器?

转载 作者:太空狗 更新时间:2023-10-29 13:16:41 24 4
gpt4 key购买 nike

我创建了一个服务,当用户按下电源按钮 3 次时,应该启动 sos 服务。我需要以下要求当它第一次收到捕获计数时等于 1。当 count=1 时,计时器应启动 1 分钟。在 count =3 的那 1 分钟内,我的 sos 服务应该启动了。这该怎么做?这个我试过了。

 public void onReceive(Context paramAnonymousContext, Intent paramAnonymousIntent) {
Calendar cal = Calendar.getInstance();
long time = cal.getTimeInMillis();
String str = String.valueOf(time);
str = str.substring(0,9);
time = Long.parseLong(str);

Long timestamp = pref.getLong("timestamp",0);
int counter = pref.getInt("counter",0);
if(timestamp != 0){
if(time == timestamp){
counter++;
if(counter == 3){
editor.putInt("counter",0);
editor.putString("SOS","SOS OFF");
editor.putInt("SOS_Flag",0); //for power button
Log.e("power button counter",String.valueOf(counter));
startService(new Intent(paramAnonymousContext, SosService.class));
}else{
editor.putInt("counter",counter);
editor.putLong("timestamp",time);
}
}else{
editor.putLong("timestamp",time);
editor.putInt("counter",counter);
}
}else{
editor.putLong("timestamp",time);
editor.putInt("counter",counter);
}
editor.apply();

最佳答案

要启动一个计时器,你可以使用这样的东西:

new Handler().postDelayed(new Runnable() {
public void run() {
//send SOS if counter == 3
}
}, 60000);

只需在 counter == 1 上开始这段代码。

关于android - 如何在 Broadcast Receiver 的接收事件中使用倒数计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826454/

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