2017-12-13 19 views
2

AlarmManager Google 어플에서 특정 날짜와 시간에 설정된 알람을 설정하고 있습니다. 최근 우리 앱의 사용자 중 일부는 이러한 알람이 나타나지 않는다고 불평하고 있습니다. 또한 Android O 가이드 라인에서 앱은 백그라운드 서비스를 실행해서는 안되며 대신 FirebaseJobDispatcher으로 전환해야한다고 말합니다. 다음 질문이 두 개 있습니다.특정 날짜와 시간에 Firebase 작업 스케줄러에서 Android 실행 작업

  1. Google 앱에서는 지정된 시간과 날짜에 사용자에게 알림을 표시하는 것을 제외하고는 백그라운드 작업을 수행하지 않습니다. 이 경우에도 FirebaseJobdispatcher으로 전환해야하나요?
  2. JobDispatcher으로 전환해야하는 경우 정확하게 특정 날짜와 시간에 작업이 실행되도록 설정하려면 어떻게해야합니까?

답변

0

네트워크 요청이나 장기 실행 CPU 작업과 같은 백그라운드 작업을 수행하지 않으므로 계속 Alarm Manager을 사용해야한다고 생각합니다.

최근 우리 앱 사용자 중 일부는 이러한 알람이 표시되지 않는다고 불평하고 있습니다. doze mode 트리거, 그것은 당신의 알람이 발생됩니다 보장되지 않을 때 (this 참조) 때문에

입니다. 당신이 할 수있는 일

는 이러한 알림 목적에 적합한 문서에 따르면 API 레벨> = 23

에 대한 귀하의 요구 사항에 따라 알람 관리기 클래스 setAndAllowWhileIdle() 또는 setExactAndAllowWhileIdle() 방법을 사용합니다. setAndAllowWhileIdle() 문서 : 시스템이 저전력 대기 모드에 실행할 경우에도이 알람이 허용됩니다

set(int, long, PendingIntent)처럼

하지만. 이 유형의 알람은 실제로 유휴 상태 일 때 알람이 울리는 경우에만 사용해야합니다 (예 : ). 사용자가 을 알 수 있도록 소리를 만들어야하는 달력 알림의 경우 합당한 예제는 입니다. . 알람이 발송되면 앱은 시스템의 임시 허용 목록에 을 약 10 초 동안 에 추가하여 으로 작업을 완료하는 잠에서 깨어나는 잠금을 더 얻을 수 있습니다.

+0

@MonicaR이 문제가 해결 되었습니까? –

+0

답장을 보내 주신 Yash에게 감사드립니다. 완전히 풀 수는 없습니다. RedMi Note 4와 같은 많은 장치에 문제가 있습니다. 사용자가 백그라운드에서 앱을 종료하면 알림이 표시되지 않습니다. 이 경우 사용자는 설정에서 앱을 명시 적으로 허용 목록에 추가해야합니다. 심지어 Samsung에는 2 ~ 3 일 이상 비활성 상태 인 경우 앱을 비활성화하는 스마트 관리자가 있습니다. – MonicaR

+0

Xiaomi 기기의 경우 자동 시작 권한이 있어야합니다. 그렇지 않으면 앱이 최근 앱에서 삭제 된 경우 앱이 종료됩니다. 사용자에게이 권한을 부여하도록 요청할 수 있습니다. 다른 기기의 경우 https://github.com/dirkam/backgroundable-android를 참조하십시오. –