2014-08-27 2 views
-1

알람 관리자를 설정하려고합니다. 난 그냥 화면을 잠글 때 잘 작동앱이 닫힐 때 Android 알람 관리자가 실행되지 않음

private static AlarmManager alarmManager; 
private BroadcastReceiver alarmReceiver; 
private PendingIntent alarmIntent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    alarmReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
       Toast.makeText(context, "Hello", Toast.LENGTH_LONG).show(); 
       WakeLocker.acquire(context); 

     } 
    }; 

    registerReceiver(alarmReceiver, new IntentFilter("com.alarm.wakemeup")); 
    alarmIntent = PendingIntent.getBroadcast(this, 0, new Intent("com.alarm.wakemeup"),0); 
    alarmManager = (AlarmManager)(this.getSystemService(Context.ALARM_SERVICE)); 
    SetAlarm(getApplicationContext()); 

} 

public void SetAlarm(Context context) 
{ 
    alarmManager.set(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis() + 
      5000, alarmIntent); 


} 

: 여기에 내가하는 일입니다 전화가 깨어나서와 토스트 5 초 후 화면에 기록됩니다. 하지만 내가 명시 적으로 응용 프로그램을 종료하면 alarmmanager가 트리거되지 않습니다. 어떤 제안?

감사합니다 이것에 대한

+2

나는 그것이 onCreate에 등록 된 것으로 생각합니다. 앱을 종료 할 때 해당 인스턴스가 삭제되지 않습니까? 매니페스트에 등록하십시오. –

+0

@Dhruti 당신 말이 맞아요, 고마워요! – yrazlik

+0

그레이트 :) 행복한 코딩. –

답변

1

내가 말한대로 comment에서 리시버를 매니페스트 파일에 등록해야합니다.

응용 프로그램이 종료 된 경우에도 작동합니다. 당신이이 도움이 onCreate

희망에서 생성 된 것으로 응용 프로그램을 종료 할 때

는 수신기 인스턴스가 파괴되고있다.

+0

나는 또한 전화를 다시 시작한 후 트리거되지 않습니다 하나를 추가하려면. 당신은 수동으로 시작해야합니다. @ 틀 루티가 틀렸어? –

+0

@ShabbirDhangot 맞습니다. 전화가 다시 시작되면 알람이 지워집니다. 나는 그것을 처리하려고 노력할 것이다. – yrazlik

+0

@ MysticMagic manif 매니페스트에 수신기를 등록하는 방법은 무엇입니까? – Jeongbebs

1

사용 static receiver. 리시버를 Activity에 등록하면 앱이 실행되지 않을 때 파기됩니다. 그러면 어떻게 그 수신기가 당신의 알람을들을 수 있습니다.

따라서 수신자를 매니페스트에 등록하십시오. 앱이 실행되지 않아도 알람을 수신합니다.

+0

그거 고마워! – yrazlik

0

이 다음 단계의 응답입니다 ...

당신이 WakefulIntent를 사용할 필요가 다시 시작한 후 서비스를 처리합니다. What is that이 샘플 코드와 문서에서 정리 될 것입니다.

Github이 저장소로 이동하면 모든 문제가 해결됩니다.

이 git에서 DEMO2를 사용했습니다.

튤립 대답은 완벽합니다. 나는 이것이 또한 도움이되기를 희망한다.

관련 문제