일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- raspberry
- 펌웨어
- lambda
- 안드로이드
- AWS
- everon
- homeassistant
- dynamodb
- 완속충전기
- 플라스크
- 디자인패턴
- 홈어시스턴트
- IOT Core
- 라즈베리파이
- thread
- flask
- OCPP
- esp8266
- 전기차충전기
- 충전기
- 서버리스
- Android
- 파이썬
- 보안
- 에버온
- 전기차
- YMODEM
- 급속충전기
- 전기차충전
- STM32
- Today
- Total
Louie NRT Story
[안드로이드] IntentService 만들기 본문
작성일: 21년 12월 12일
PS. 충전기 개발할때 UI와는 별도로 무거운 작업을 할때 수행하면 좋음. 예를 들어 서버로부터 다운로드를 한다거나 데이터들을 분석하고 서버에 데이터를 업로드 한다는 등의 이벤트성 작업에 좋을 것으로 판단됨
Index
1. 소스코드
2. 동작확인
3. IntentService와 Service 차이점
1. 소스코드
1) IntentService 코드를 생성함
2) MyIntetnService
- IntentService 코드를 만듬
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
for (int i = 0; i < 5; i++){
try{
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
Log.d("MyIntentService", "인텐트 동작 중 " + i);
}
}
}
3) MainActivity
- IntentService를 실행 시킬 수 있는 코드를 입력함
- StartIntentService()가 IntentService 동작시키는 코드임
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startService(View view) {
Intent intent = new Intent(this, MyService.class);
startService(intent);
}
public void stopService(View view) {
Intent intent = new Intent(this, MyService.class);
stopService(intent);
}
public void StartIntentService(View view) {
Intent intent = new Intent(this, MyIntentService.class);
startService(intent);
}
}
4) main_activity.xml
- "인텐드서비스 시작" 버튼을 누르면 IntentService 호출함
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="startService"
android:text="Service Start"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="stopService"
android:text="Service Stop"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="StartIntentService"
android:text="인텐드서비스 시작"/>
</LinearLayout>
2. 동작 확인
- "인텐드서비스 시작" 버튼을 여러번 눌러도 순서대로 0 -> 1 -> 2 -> 3 -> 4 순서대로 계속 나오고 있음을 알 수 있음
3. IntentService와 Service 차이점
- 둘의 가장 큰 차이점은 별도의 Queue를 가지고 있느냐 차이점인 것으로 생각됨
- IntentService는 Intent를 받으면 IntentQueue에 넣어 받은 순서대로 작업을 수행함
- IntentService는 작업이 완료되면 별도의 코드 없이 스스로 종료하지만 Service의 경우 별도로 종료가 되도록 작업을 해주어야함
Referece:
https://hijjang2.tistory.com/460
https://m.blog.naver.com/alsrb524/221820800178
'전기차충전기' 카테고리의 다른 글
[전기차 충전기] 서울시 보조금 충전기 OCPP 1.6 연동 - 01 (0) | 2022.01.11 |
---|---|
[전기차 충전기] OCPP 1.6 Python 예제 (3) | 2022.01.11 |
[안드로이드] Service 만들기 (0) | 2021.12.12 |
[안드로이드] 잘못된 Thread 사용법 (0) | 2021.12.12 |
[안드로이드] DataBinding (0) | 2021.12.09 |