2013-07-10 4 views
1

내 앱에서 AlarmManager를 사용하여 특정 요일과 특정 시간에 Activty를 시작합니다. 그래서Android AlarmManager : 활동을 중지하는 방법

나는 알람 관리기가 있음을 월, 화, 수 .. 액티비티 오프 12시 화재 ... 이제

에서, 요점은 내가 정확한 시간에 같은 활동을 중지 할 필요가 있다는 것입니다 (가능한 경우 AlarmManager를 다시 사용).

달성 방법 : AlarmManager를 사용하여 활동을 중지 하시겠습니까?

+2

등록을 취소 할 수 있습니까? 실행중인 경우 두 번째 알람으로 해당 활동의 값을 변경할 수 있고 해당 값이 활동 통화 'finish();'로 설정되어있는 경우 –

+2

활동을 시작하는 것과 같은 방법으로 완료()하면됩니다. 그 활동에 대해? –

+4

왜 활동입니까? 이것은 좋은 패턴이 아닙니다. 서비스를 사용해야합니다. –

답변

3

해당 활동에 broadcastReceiver를 등록 할 수 있습니다. 그것을 멈추고 싶다면 해당 활동에 브로드 캐스트 알림을 보내고 관련 콜백 기능을 트리거하여 활동을 마칩니다.

1

는 판 카지 사용 서비스를 말했듯이 당신은 내가 그 바로 실행되는 가정 할 수 중지해야하는 경우 u는 브로드 캐스트 리시버

public void stopService() { 
    Log.d("TAG", "CancelAlarm Start"); 
    Intent intent = new Intent(context, PullNotification.class); 
    PendingIntent sender = PendingIntent 
      .getBroadcast(context, 0, intent, 0); 
    AlarmManager alarmManager = (AlarmManager) context 
      .getSystemService(Context.ALARM_SERVICE); 
    alarmManager.cancel(sender); 
} 
+0

대단히 감사합니다! 제 목적을 위해 서비스를 사용하는 것이 더 나은 아이디어라고 생각하는 이유는 무엇입니까? 다시 감사합니다 !!!! Lisa –

+0

u가 활동을 호출하는 것보다 배경 프로세스 서비스를 잘 수행하고 있기 때문입니다. –