2013-06-18 1 views
0

Android AlarmManager를 사용하여 특정 시간에 이벤트를 수신합니다.화면이 잠겨있는 동안 AlarmManager에서 콜백 수신

alarm_manager = (AlarmManager)getSystemService(ALARM_SERVICE); 
    alarm_manager.set(AlarmManager.RTC_WAKEUP, target_time, pending_intent); 

보류중인 의도는 다음과 같이 생성됩니다 :

power_manager = (PowerManager)getSystemService(POWER_SERVICE); 
    wake_lock = power_manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getString(R.string.app_name)); 
    wake_lock.acquire(); 

이벤트는 다음과 같습니다

전화가 꺼져있는 동안 알람 트리거를 만들기 위해
pending_intent = createPendingResult(PENDING_INTENT_ID, new Intent(), 0); 

, 나는 부분 가동 잠금을 획득 onActivityResult 콜백에서 처리 :

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

내 문제는 내가 활동을 시작한 다음 내 휴대 전화의 전원 버튼을 누르면 (화면이 꺼지고 잠김) 사용자가 휴대 전화를 다시 켜고 화면 잠금을 해제 할 때까지 이벤트가 전달되지 않는다는 것입니다. .

잠금 화면과 관련이 있다고 가정합니다. (화면이 잠겨 있기 때문에 의도적으로 안드로이드가 의도하지 않았습니까?) -하지만 내 문제에 대한 정보가 거의 없습니다. 부분적인 잠김 잠금을 사용하면 onActivityResult를 호출해도 화면이 꺼져 있는지, 잠겨 있는지 여부에 관계없이 잠길 수 있습니다.하지만 분명히 그렇지 않습니다.

내가 어디에서 잘못했는지 누군가가 나를 가리킬 수 있습니까?

답변

0

누군가가 대답했지만 어떤 이유로 응답이 없어졌지만 그렇지 않은 경우이를 받아 들였습니다.

대답은 기본적으로

pending_intent = createPendingResult(PENDING_INTENT_ID, new Intent(), 0); 

는 신뢰할 수 없습니다 것을 가고, 대신 방송 수신기를 사용하여 제안했다. 나는 아직도 그들이 왜 작동하지 않는지 모르겠다. (나는 그들이 더 많은 것을 알고 있는지 묻는 대답에 대해 논평했다.) 어쨌든. 나는

을 쓰고 이것을 처리하기 위해 브로드 캐스트 수신기를 추가했다.

관련 문제