Установить Повтор на 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.

  • Проблема: это занимает больше, чем пять секунд, которые я установил, и, кроме того, он также пропускает много кадров.

0 ответов

Другие вопросы по тегам