@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		//Setting Notificaion Code
	        telMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

	        telMgr.listen(new PSL(), PhoneStateListener.LISTEN_CALL_STATE);
		return super.onStartCommand(intent, flags, startId);
	}


Service 내에 이런 코드가 있습니다.


전화가 올 때 마다 클래스 PSL(PhoneStateListener를 extend하는 클래스)의 동작을 수행합니다.


물론 PhoneStateListener이므로 전화가 올때 뭐 한다 이런 식입니다.


최초 실행 및 동작에는 아무런 문제가 없습니다.


하지만


Task Manager/Killer로 종료되거나 메모리가 부족하여 자연스럽게 종료되어 다시 실행되는 경우


서비스가 정상적으로 수행되지 않습니다.


Notification을 이용하여 startForeground()도 시도해보았으나 아예 작동을 하지 않고


onStartCommand()의 return값을 START_STICKY, START_REDELIVER_INTENT 등으로도 바꾸어보았으나 소용 없었습니다.


대신 설정 - 어플리케이션의 실행 중 어플리케이션 리스트에는


어플 재시작 전과 후 모두 프로세스 1개 및 서비스 1개가 찍혀있는데


조금 특이한 사항이, 강제 종료를 하게되면 이전과 비교하여 메모리 점유율이 1/10으로 떨어지고 그 때부터 동작을 하지 않습니다.


조언 부탁드립니다.