그러냐

안드로이드 stopservice nullpointerexception 본문

android

안드로이드 stopservice nullpointerexception

관절분리 2017. 6. 21. 21:07
반응형

서비스는 죽어도 다시 살아나기 때문에 어플을 강제종료시킨후 다시 실행시킬 때 중복실행방지를 해준다

if(!isServiceRunningCheck()) {
cintent = new Intent(this, EmgService.class);
startService(cintent);
}


그래서 내가 띄운 서비스가 떠 있을때만 종료를 시킨다

if(isServiceRunningCheck()) {
stopService(cintent);
}


그러다보니 어플을 강제 종료시킬 경우 기존 서비스를 실행했던 변수데이터 cintent 가 날아가서


서비스는 떠 있어서 stopService(cintent) 는 타게 되는데 정작 cintent는 null이 들어가버린다.


그래서 널 익셉션이 발생된다 그냥 인자값없이 stopService()만 실행시키면 된다고 그러는데 나는 왜 에러가 날까


그래서 이렇게 했다

if(isServiceRunningCheck()) {
if(cintent == null) {
ComponentName cn = new ComponentName("xxx.xxx.com.fe","xxx.xxx.com.EmgService");
Intent i = new Intent();
i.setComponent(cn);
stopService(i);
}else {
stopService(cintent);
}
}

컴포넌트이름을 생성시켜서 그걸 정지시켰다


된다


되는듯




반응형