Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C# IO
- php 시큐어코딩
- 안드로이드
- soundpool
- 폼메일
- C#
- 우분투
- UML
- javascript
- Android
- chart.js
- html5
- dovecot
- 자바스크립트
- 설치
- 안드로이드 gcm
- Mail Server
- curl
- xe
- android 효과음
- php 취약점
- PHP
- FCM
- 자동 생성
- not working
- roundcube
- 안드로이드 푸쉬
- 안드로이드 푸시
- WebView
- mysql
Archives
- Today
- Total
그러냐
안드로이드 stopservice nullpointerexception 본문
반응형
서비스는 죽어도 다시 살아나기 때문에 어플을 강제종료시킨후 다시 실행시킬 때 중복실행방지를 해준다
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);
}
}
컴포넌트이름을 생성시켜서 그걸 정지시켰다
된다
되는듯
반응형
'android' 카테고리의 다른 글
PendingIntent Activity가 이미 실행되어 있는 경우 (0) | 2017.06.22 |
---|---|
PendingIntent flag 의 의미 (0) | 2017.06.22 |
Android – Service 중복 실행 문제 해결 (0) | 2017.06.21 |
UncaughtExceptionHandler를 이용한 앱 비정상 종료시 Log전송 및 재실행 하기 (0) | 2017.06.21 |
android 버튼 눌림 클릭 효과 (0) | 2017.06.21 |