在我的应用程序中,我希望每个用户每 24小时运行一次代码!
例如:如果在 12:00 am 显示Toast
消息,然后在明天12:00 再次显示此Toast
消息。
我该怎么办?
答案 0 :(得分:2)
尝试并使用JobScheduler
类用于这种用例,仅在API级别21以上才受支持
https://medium.com/google-developers/scheduling-jobs-like-a-pro-with-jobscheduler-286ef8510129
另一种替代方法是使用Firebase JobDispatcher
,但这依赖于Google Play服务SDK。
https://developer.android.com/topic/performance/scheduling
上面的链接介绍了所有其他替代方法。
快乐地探索.. !!
答案 1 :(得分:1)
您需要注册一个警报,请尝试以下
第1步:注册警报。
private void registerAlarm(Context context, int requestCode) {
int HOUR = 60 * 60 * 1000;
Intent intent = new Intent(context, DailyAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ 24 * HOUR, pendingIntent);
}
例如从活动onCreate调用registerAlarm方法。 理想情况下,我们应该在应用安装时进行注册
registerAlarm(this, 1);
第2步:创建BroadcastReceiver。
public class DailyAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("DailyAlarmReceiver","Received");
}
}
第3步:在清单文件中添加收件人
<receiver
android:name=".DailyAlarmReceiver"
android:exported="true" />