2012-12-15 3 views
1

저는 주위를 검색하려고했지만, 제가 그런 오류를 경험 한 유일한 사람인 것 같습니다. 그래서 누군가 내가 잘못한 것을 지적 할 수 있습니다. 알람 관리자 OnCreate()가 무작위로 호출되었습니다.

나는이 기능을 통해 AlarmManager를 만들 : 예상대로

public void startTimer() { 
     Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class); 

     pendingIntent = PendingIntent.getService(MainActivity.this, 0, 
       myIntent, 0); 
     AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.add(Calendar.SECOND, 10); 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
       calendar.getTimeInMillis(), 
       AlarmManager.INTERVAL_FIFTEEN_MINUTES/50, pendingIntent); 

     Toast.makeText(MainActivity.this, "Start Alarm", Toast.LENGTH_LONG) 
       .show(); 
    } 

가 작성 될 : OnCreate()를 호출 해 OnStart()가 호출됩니다.

private void stopTimer() { 
     Intent myIntent = new Intent(MainActivity.this, MyAlarmService.class); 

     pendingIntent = PendingIntent.getService(MainActivity.this, 0, 
       myIntent, 0); 
     AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     alarmManager.cancel(pendingIntent); 
    } 

을 그리고 그것은 참으로이 호출 후 중지 : 는 그럼 난 함수를 호출하여 타이머를 중지합니다.

이 문제는 응용 프로그램이 이러한 호출에 더 쉽게 볼 시스템 종료 후 알람 관리기의 OnCreate()OnStart() 방법이 긴 호출 될 때, 이후 발생합니다. 내 휴대폰에 사용 가능한 메모리가 부족할 때 이런 현상이 발생합니다.

아이디어가 있으십니까? 미리 감사드립니다!

답변

0

서비스가 완료되면 stopSelf()으로 전화를 걸거나 IntentService으로 전환해야합니다. 완료되면 stopSelf()이 자동으로 호출됩니다. 지금은 서비스가 누출되고 있으며, Android는 잠시 후 파괴하고 재창조하고 있습니다.

+0

오, 고마워, 나는 어떻게 든 그것을 놓쳤다. 이것은 내 문제를 해결하는 것 같다. – niosus

관련 문제