Я новичок в студии кодирования и Android. и теперь я пытаюсь построить счетчик калорий на Android. Я пытаюсь отправлять данные каждые 12 часов утра (23:59), но происходит то, что каждый раз, когда я принудительно закрываю приложение после 11:59 и возвращаюсь к приложению (активности), данные снова отправляются. я вижу много уроков на youtube, stackoverflow и github. но я не нашел активного автоматически (onCreate ()), поэтому мне нужно спросить здесь. Это мой код.
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_status_body);
//some code
//some code
Calendar calendarGo = Calendar.getInstance();
calendarGo.set(
calendarGo.get(Calendar.YEAR),
calendarGo.get(Calendar.MONTH),
calendarGo.get(Calendar.DAY_OF_MONTH),
23, 59, 59);
setAlarm(calendarGo.getTimeInMillis());
// some code
// some code
}
private void setAlarm(long time){
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, BroadCastReceiverTester.class);
Intent intent1 = new Intent(this, mainActivity.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1321, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,time,AlarmManager.INTERVAL_DAY, pendingIntent);
}
BroadCastReceiverTester.java
public class BroadCastReceiverTester extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// some code
// some code
activity activity = new activity(activity_id, activity_name,
activity_minutes_perfomed, activity_calories_burned,
activity_date);
databaseReferenceActivity.child(activity_id).setValue(activity);
}
Что я хочу сказать, так это то, что я хочу, чтобы BroadCastReceiver функционировал только во время, которое я установил (т. Е. 23:59:59), но реальность всегда работает каждый раз, когда запускается onCreate.
Спасибо