Могу ли я изменить Alarn на повторяющийся сигнал тревоги? - PullRequest
0 голосов
/ 03 марта 2020

Как я могу изменить тревогу, установленную на все сообщения, на повторяющуюся? я установил будильник с AlarmManager? Мой настоящий код выглядит так:

    intent = new Intent(MainActivity.this, AlarmReceiverActivity.class);
                        pendingIntent = PendingIntent.getActivity(MainActivity.this, 2, intent, PendingIntent.FLAG_CANCEL_CURRENT);
am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, time, intervall, pendingIntent);

спасибо за помощь, Florian

edit: я решил свою проблему другим способом (каждый раз устанавливая новый будильник), так что никаких стрессов, но мне все еще интересно, как это будет работать

1 Ответ

0 голосов
/ 03 марта 2020

Вы выполнили эту работу по классу обслуживания.

Например

В методе Application's onCreate() необходимо инициализировать AlarmManager, как показано ниже.

long l = 60000;
try {

            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

            Intent intent = new Intent(context, SyncBroadcastReceiver.class);

            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, SYNC_CALL_TO_SERVER_PENDING_INTENT,
                    intent, PendingIntent.FLAG_UPDATE_CURRENT);

            alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), l, pendingIntent);

        }catch (Exception e){
            e.printStackTrace();

        }

И SyncBroadcastReceiver как,

public class SyncBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            //comment to check crash
            Intent intent1 = new Intent(context, ServiceClass.class);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                context.startForegroundService(intent1);
            } else {
                context.startService(intent1);
            }
        } catch (Exception e){
            e.printStackTrace();

        }
    }
}

И ServiceClass, как

public class ServiceClass extends Service {
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         // hitNotification(); // what need to act like notification dialog
         return START_NOT_STICKY;
    }
}
...