gpt4 book ai didi

android - 想要每 20 秒重复一次闹钟

转载 作者:行者123 更新时间:2023-11-30 00:09:52 25 4
gpt4 key购买 nike

AlaramManager 将正常工作,但重复时间因设备而异

public void StartMoniterning() {
try {
Alarammanager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(this, AppMoniteringBroadCastReceiver.class);
alarmIntent.putExtra("id", 1314);
pendingIntent = PendingIntent.getBroadcast(this, 1314, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Alarammanager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP ,
0, 2*10000,
pendingIntent);
Toast.makeText(this, "Starting Monitering",
Toast.LENGTH_LONG).show();

} catch (Exception e) {
e.printStackTrace();
}
}

检查我的代码 fragment 以取消 AlaramManager。

private void cancelAlaram() {
try {
Alarammanager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(getBaseContext(), AppMoniteringBroadCastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), 1314, i, 0);

Alarammanager.cancel(pendingIntent);
pendingIntent.cancel();
} catch (Exception e) {
e.printStackTrace();
}
}

检查 AlaramManager 是否运行。

public boolean isAlaramManagerExist() {
Intent myIntent = new Intent(HomeActivity.this, AppMoniteringBroadCastReceiver.class);
return (PendingIntent.getBroadcast(HomeActivity.this, 1314, myIntent, PendingIntent.FLAG_NO_CREATE) != null);
}

最佳答案

当涉及到可能被滥用和耗尽电池生命周期的行为时,Android 就变成了一个真正的婊子。我在错误的时间重复发出警报时遇到了很多麻烦。我的应用程序所做的(它在大多数情况下都完美无缺地工作,稍后会详细介绍)是它注册了一个非重复警报,然后在警报接收器类中(在你的情况下它是 AppMoniteringBroadCastReceiver)当它收到警报它会在将来的适当时间再次注册相同的警报(在您的情况下是 20 秒后)。因此,它不是重复警报,而是一连串非重复警报。

我的应用程序根据 Android 版本以三种方式注册非重复警报:通过使用 AlarmManager.set() 对于低于 KitKat 的 Android 版本,它使用 AlarmManager.setExact( ) 从 Kitkat 到 Marshmallow 的任何东西,最后它使用 AlarmManager.setExactAndAllowWhileIdle() 来处理 Marshmallow 及更高版本。

这在大多数 Android 设备上精确到秒,但可能存在电池优化功能(如 Doze 或其他供应商实现的功能)会干扰此并阻止您的应用程序接收警报。除了告诉用户如何使您的应用免于打瞌睡或其他特定于供应商的实现之外,您对此无能为力。

关于android - 想要每 20 秒重复一次闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317619/

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