2016-09-25 6 views
0

그럼 내 수신기와 서비스가 정확하다고 가정 해 봅시다. BOOT_COMPLETED은 기기를 재부팅 한 후에도 계속 실행되며 처음으로 열거 나 실행하지 않습니다 (앱). 그런 다음 알람이 만기 날짜와 시간에 작동합니까?재부팅 후 앱을 실행하지 않아도 BOOT_COMPLETED을 (를) 계속 사용할 수 있습니까?

참고 : 재부팅 후 응용 프로그램을 시작하려고하지 않습니다.

이 내 그렇지 않은 경우

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" android:persistent="true"> 
    <receiver android:name="com.majimechibireminder2.OnBootReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <category android:name="android.intent.category.HOME" /> 
    </intent-filter> 
</receiver> 

    <receiver android:name=".AlarmReceiver"></receiver> 
    <service android:name=".ChibiReminderService" > 
</service> 
    <activity android:name=".ChibiRemind"></activity> 
</application> 

매니페스트, 당신이 나에게 그 내 이상에서 작동하는 몇 가지 적절한 코드를 제안 할 수있다.

+0

앱이 적어도 한번은'BOOT_COMPLETE'이 작동하기 위해 실행되어야합니다. – Shaishav

+0

다른 방법이 있습니까? 사용자의 일정이 예정된 날짜와 시간에 가까워지고 여전히 재부팅 후 처음으로 앱을 실행하거나 실행하지 않으면 어떻게됩니까? –

+0

AlarmManager를 통해 설정된 알람은 재부팅 후에 사라집니다. – Shaishav

답변

1

브로드 캐스트를 수신 할 수있게하려면 휴대 전화에 설치 한 후 앱을 적어도 한 번만 실행해야합니다. 알람으로 작업하는 경우 사용자가 특정 알람을 설정하기 위해 앱을 열어야하기 때문에 걱정할 필요가 없습니다.

전화가 꺼지면 알람이 울립니다. 재부팅이 완료되면 앱에 BootCompleted 동작이 발생합니다. 재부팅 후 앱을 시작할 필요가 없습니다.

사용자가 설치 한 후 앱을 열지 않으면 알람을 설정하지 않았다는 의미입니다. 따라서 재부팅 후에 재설정 할 것이 없기 때문에 재부팅에 대해 걱정할 필요가 없습니다.

업데이트 :

시도 수신기에 속성 android:enabled="true"을 추가. 최종 코드는 다음과 같아야합니다.

<receiver android:name=".OnBootReceiver" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 
+0

흠, 나는 알람을 설정 한 다음 장치를 재부팅하려고 시도합니다. 나는 앱을 열지 않습니다. 그런 다음 예정된 알람으로부터 1 분이 지날 때까지 기다렸습니다. 알람이 발생하지 않습니다. –

+0

'OnBootReceiver'의 코드는 무엇을합니까? 알람을 다시 설정 하시겠습니까? – Marat

+0

서비스 클래스의 인 텐트를 시작하고 서비스 클래스의 모든 알람을 재설정 한 다음 다시 스케줄합니다. 기기를 재부팅 한 후에 앱을 실행하면 알람을 다시 예약 할 수 있었지만 앱을 시작하지 않으면 알람이 예약되지 않습니다. –

0

AlarmManager에 의해 설정된 경보는 재부팅 후 추가 조작없이 손실됩니다.

JobScheduler API가 복구 할 수있는 영역 중 하나입니다. 다시 부팅 한 후에도 계속 유지되도록 설정하면 다시 부팅 한 후에도 손실되지 않습니다.