Установить Повтор на Android Studio 3.0
Я пытаюсь установить повторение по alarmMananger с помощью setRepeating (). Код выполняется без каких-либо ошибок. Однако проблема, с которой я сталкиваюсь, заключается в том, что она не соблюдает интервал time
Я установил. Вот моя полная кодовая база, что я сделал не так?
Intent intent = new Intent(this, MyReceiver.class);
//PASS CONTEXT,YOUR PRIVATE REQUEST CODE,INTENT OBJECT AND FLAG
pi = PendingIntent.getBroadcast(this, 0, intent, 0);
//INITIALIZE ALARM MANAGER
alarmManager = (AlarmManager) this.getSystemService(ALARM_SERVICE);
timeTxt = findViewById(R.id.timeTxt);
startBtn = findViewById(R.id.startBtn);
cancelBtn = findViewById(R.id.cancelBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int time = Integer.parseInt(timeTxt.getText().toString());
//SET THE ALARM
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), time * 1000
, pi);
Toast.makeText(MainActivity.this, "Alarm set in " + time + " seconds", Toast.LENGTH_SHORT).show();
}
});
cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (alarmManager != null) {
alarmManager.cancel(pi);
}
}
});
My Receiver
try{
Toast.makeText(context, "hello", Toast.LENGTH_SHORT).show();
Log.e("start","");
} catch (Exception e){
Log.i("mesage", e.getMessage());
}
My Mainifest
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Пример: я хочу, чтобы будильник звонил каждые пять секунд, поэтому я установил свой интервал равным 5.
- Проблема: это занимает больше, чем пять секунд, которые я установил, и, кроме того, он также пропускает много кадров.