티스토리 뷰
안드로이드 서비스 동작 중인지 파악하기
아래의 코드를 사용하면 된다.
나는 보통 static으로 선언하여 service 안에 넣는다.
예를 들어 service 이름이 'JHService' 라면
JHService.isServiceRunning(); 하면 여부가 나온다.
public static boolean isServiceRunning(Context context) { ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); for (RunningServiceInfo rsi : am.getRunningServices(Integer.MAX_VALUE)) { if ([서비스이름].class.getName().equals(rsi.service.getClassName())) //[서비스이름]에 본인 것을 넣는다. return true; } return false; }
이거 구현하면서 햇깔렸던게, String 비교 부분에서 .equals() 말고 == 을 해줬더니 계속 실패했다는 점...
문자열이 일치하는지 아닌지 비교하려면 .equals() 쓰는 것 잊지 말자. == 는 객체의 instance가 같은지 다른지 보는 연산자이다.
class.getName() 하는 것이나 service.getClassName() 하는 것이나
kr.jhb.testapp.ServieName
위와 같이 package name + class name 으로 나온다.
'Development > Mobile' 카테고리의 다른 글
[Android] getTextBounds를 통한 글씨 영역 구하기 Bug? (0) | 2015.12.28 |
---|---|
[Android] SurfaceView의 FPS 관리 (Delta Time) (0) | 2015.12.21 |
[Android] Screen On이 유저에 의해 일어난 것인지? (0) | 2015.11.29 |
[Android] NotificationListnerService 완벽 예제 (0) | 2015.11.29 |
[Android] Android System Application (기본 설치앱) 지우기 (0) | 2015.11.29 |
[Android JNI/NDK] 로그 출력 (0) | 2015.09.21 |
[Android JNI/NDK] 배열 사용하기 (3) | 2015.09.21 |
[Android JNI/NDK] C/C++에서 Java 함수 호출 하기 / 멤버 변수 사용하기 (0) | 2015.09.21 |
댓글
공지사항
최근에 올라온 글
- Total
- 847,207
- Today
- 37
- Yesterday
- 176
TAG
- 음악
- driver
- API
- 리눅스
- NDK
- 프로그래밍
- source
- db
- Visual C++
- it
- java
- Troubleshooting
- winapi
- database
- gcc
- linux
- 드라이버
- algorithm
- Quiz
- C
- Cloud
- MFC
- AWS
- android
- jni
- 안드로이드
- C++
- jni강좌
- Python
- kering