У меня есть код, который должен быть запущен ежедневно; для этого я пытаюсь использовать AlarmManager
. Это мой код для запускающих сигналов тревоги:AlarmManager в Android
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent i = new Intent(this, AlarmReciever.class);
PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(pi); // cancel any existing alarms
am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + AlarmManager.INTERVAL_DAY,
AlarmManager.INTERVAL_DAY, pi);
}
Эта часть кода вызова AlarmReciever
класс, как и следовало ожидать, но я хочу, чтобы код в AlarmReciever
класса, который будет выполняться только один раз в день. Это называется несколько раз. Как его ограничить?
Это AlarmReciever
класс:
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("in alarm reciever class");
}
}
Я пытаюсь выполнить некоторые бизнес-логики в методе onReceive()
.
В файле manifest.xml:
<receiver android:name="com.xyz.reciever.AlarmReciever"></receiver>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
объявлены.
Вы имеете в виду, что это постоянно тревожит? – kabuto178
@ kabuto178 да его постоянно тревожит .... У меня есть sysout в классе AlarmReciever и его печать постоянно ... не один раз, как ожидалось. –
Вы пытались использовать объект календаря как ссылку на время? – kabuto178