해당 프로젝트

https://github.com/jaybon1/androidwork/tree/master/serviceCounterApp

 

jaybon1/androidwork

Contribute to jaybon1/androidwork development by creating an account on GitHub.

github.com

 

안드로이드 4대 컴포넌트 알아둬야함 
액티비티
서비스
컨텐트프로바이더 (연락처앱에 접근 하는 등)
브로드캐스팅

 

AIDL을 만들 수 있으면 컨텐트 프로바이더를 만들 수 있다
다른 앱이 원할 때 내 앱의 함수를 실행

책 552페이지

 

--

 

 

뷰 만들기

--

 

 

서비스 생성

--

 

 

1초에 한번씩 count가 증가하도록 세팅

--

 

 

메인액티비티에서 서비스를 실행해본다

--

 

 

로그에 잘 보인다

--

 

 

서비스에서 조건을 건다

--

 

 

멈췄다 실행해보면 아래와같이 나온다

--

 

 

한계 :
메인 액티비티에서 해당 값을 가져올 수 없다(ui갱신을 할수 없다)
값이 보존이 되지 않는다 (일시정지가 안됨)

---------

 

AIDL 생성

 

 

 

ctrl + f9 : 빌드 하면 아래와 같이 BuildConfig와 인터페이스가 만들어진다

--

 

 

서비스에서 아래와 같이 입력( retrun 0을 count로 바꾸자)

--

 

 

서비스에서 onBind를 호출하면 바인더를 리턴 받을 수 있다

--

 

 

멈출때 디스트로이 쓰지 않고 온 언바인드 사용

--

 

 

--

 

 

--

 

바인더는 서비스변수를 참조할 수 있다

--

 

서비스

1. BindService -> onCreate /onBind 실행
2. 스레드 실행

--

 

 

for문 대신 while 문을 사용

--

 

 

서비스를 startService 대신 bindService를 이용해서 실행한다

 

또한 화면에 서비스에서 받아온 값을 입력하기위해 쓰레드를 만들고

핸들러를 이용하여 ui에 접근하여 글자를 변경한다

--

 

 

재실행시 메인에서 count값을 받아온다

--

 

 

테스트

 

 

 

 

 

 

 

 

 

+ Recent posts