Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- MainAxisAlignment
- Flutter Example
- Flutter 앱 배포
- InkWell
- Flutter Tutorial
- Flutter 예제
- Scaffold
- listview
- Cached Image
- Row
- 반석천
- Flutter 강좌
- Hello World
- FutureBuilder
- Snackbar
- Load Image
- CrossAxisAlignment
- node.js
- ListTile
- navigator
- WillPopScope
- Column Widget
- HTTP
- sqlite
- AppBar
- flutter
- Networking
- Image.network
- Row Widget
- ListView.builder
Archives
- Today
- Total
꿈꾸는 시스템 디자이너
action을 가지는 Intent를 이용하여 Activity나 Service를 실행(호출)할 시 주의점 본문
Development/Android
action을 가지는 Intent를 이용하여 Activity나 Service를 실행(호출)할 시 주의점
독행소년 2013. 10. 14. 15:48Activity에서 Intent를 이용하여 새로운 Activity나 Service를 실행하면 피호출되는 Activity나 Service의 onCreate()나 onStartCommand()에서 수신되는 Intent의 action값에 따라 적절한 처리를 하게 된다.
이 때 아주 바보 같은 실수를 저지를 수 있음에 주의를 요한다. ㅡ,ㅡ
<Service 파일>
public int onStartCommand(Intent intent, int flags, int startId) { if(isAlive == false) startPamService(); String action = intent.getAction(); if(action == null) return super.onStartCommand(intent, flags, startId); if(action.equals(Utilities.SEND_INSCONS)){ sendInsCons = new SendInsCons(this.getBaseContext(),wpManager,channel); sendInsCons.execute((Void) null); }else if(action.equals(Utilities.STOP_SEND_INSCONS)){ sendInsCons.cancel(false); } return super.onStartCommand(intent, flags, startId); }
서비스를 구현할 경우 onStartCommand()를 구현할 때 수신한 action값에 따라 적절한 로직을 수행하도록 하는데, 만약 이 서비스를 호출하는 activity에서 action을 가지지 않는 Intent를 이용하여 이 서비스를 호출할 경우 line 5,7,8과 같이 null 처리를 해주는 로직을 추가해야 한다. 그렇지 않으면 line 10에서부터 시작하는 코드에서 null을 특정 action값과 비교할 때 에러가 발생한다.
'Development > Android' 카테고리의 다른 글
ListView에 CheckBox를 넣을때 ListView가 클릭되지 않는 현상 (0) | 2013.10.21 |
---|---|
onCreate()내에서 바이드한 서비스 호출시 문제 발생 원인 (0) | 2013.10.16 |
AppWidget에서 ProgressDialog 사용법 (0) | 2013.09.10 |
setOnClickPendingIntent를 가지는 AppWidget 예제 (0) | 2013.08.29 |
AppWidget에서 View에 onClick 이벤트 처리 (setOnClickPendingIntent) (0) | 2013.08.27 |
Comments