0. History
- 이 글은 2012-01-14 초안 작성 시작하였습니다.
- 잘못된 정보, 오래된 정보, 오타가 있다면 Comment 남겨 주세요. 확인 후 수정하겠습니다.
- 이 글은 2012-01-16 초안 작성 완료하였습니다.
1. Prerequisite & References
- Java에 대한 기초
- Android 에 대한 기초
2012/01/14 - [프로그래밍 놀이터/안드로이드] - [Tutorial] 예제를 통해 배우는 간단한 안드로이드 AppWidget. 함께 만들어 봐요 #2
2. Intro
이 글을 왜 쓰시나요?
이제는 왠만한 안드로이드 개발자분들이 Activity 는 쉽게 만들 것입니다.
하지만 안드로이드 AppWidget( 앱 위젯 )을 만드는 것은 엄청나게 고급기술처럼 여기고 어려워하시더라구요.
여러분들이 앱 위젯도 액티비티처럼 쉽게 만들 수 있도록 이 튜토리얼을 써봅니다.
3. Information
앱 위젯이 뭔가요? 소개 좀 해주세요
<HTC Launcher>
그림에서와 같이, 홈스크린 or 런처 ( HomeScreen or Launcher ) 위에 떠 있으면서, User 와 Interaction 하는 녀석들을 말합니다.
[WidgetHost]
접기
Launcher 를 개발해 보신 분은 아시겠지만, General 한 Widget 을 붙이기 위해서는
Launcher 에서 AppWidgetHost 를 가지고 있어야 합니다.
런처에 붙는 AppWidget 의 View는 AppWidgetHostView 를 상속하게 됩니다.
사실 Launcher 에서 AppWidget을 주로 붙이기는 하지만, AppWidgetHost와 AppWidgetHostView를 잘만 활용, 구현하면
일반 앱에서도 당연히 위젯들을 관리할 수 있습니다.
접기
정말 딱 들어맞는 말이네요.
이녀석은 이 Widget을 담고 있는 AppWidgetHost로부터 주기적으로 update 신호를 받습니다.
앱 위젯을 만들려면 무엇이 필요한가요?
3. Widget 의 속성 ( Meta data ) 을 기술한 xml 파일 ( AppWidgetProviderInfo 와 매칭 )
준비물들을 보고서는 감이 잘 안 오는데 하나씩 설명 좀 해주세요.
AppWidgetProvider class 를 상속하는 provider class
AppWidgetProvider 는 BroadcastReceiver를 상속한 녀석으로,
AppWidgetHost ( 보통 런처입니다. ) 로부터 broadcast message 를 받습니다.
어떤 일을 해줄지를 구현해주는 것입니다.
AppWidgetHost ( 런처 )는 widget이 update, enabled, disabled, delete 되었을 때 broadcast 를 쏴주고,
AppWidgetProvider가 이 메세지들을 받아서 이것을 implement 한 provider의 function들을 callback처럼 불러주는 것입니다.
onUpdate( Context, AppWidgetManager, int[] )
요 녀석은 App Widget 의 속성 ( Meta data ) 에서 지정해준 updatePeriodMillis 값에 따라 주기적으로 호출됩니다.
대신 Configuration Activity 가 init 작업을 하게 되죠.)
onDelete( Context )
요 녀석은 App Widget 이 Widget host 로부터 삭제될 때 불립니다.
onEnabled( Context )
요 녀석은 App Widget 이 "처음" 생성될 때 불립니다.
onDisabled( Context )
요 녀석은 App Widget 이 "삭제" 될 때 불립니다.
onReceive( Context, Intent )
요 녀석은 일반적인 브로드캐스팅 receiver 입니다. 이녀석은 위에 나열한 callback 들보다 먼저 불리게 됩니다.
이 때, AppWidgetProvider의 기본적인 동작은 보장하고 싶다면 super.onReceive() 를 불러주는 것을 잊으면 안 되겠죠?
Widget 의 View Layout 를 기술한 xml 파일
Widget 의 속성 ( Meta data ) 을 기술한 xml 파일
부가적인 것 : Widget 의 configuration 변경을 제공할 activity
추가적인 것 : Manifest 등록
출처 : http://aroundck.tistory.com/entry/Tutorial-간단한-안드로이드-AppWidget-어떻게-만들까요-함께-만들어-봐요
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - App Widget 이야기 (0) | 2013.12.31 |
---|---|
안드로이드 - Android AppWidget, RemoteViews and CheckBox (0) | 2013.12.31 |
안드로이드 - DataBase 변경 시에 ContentObserver 이용하여 check 하는 방법. (0) | 2013.12.31 |
안드로이드 - 앱위젯 appwidget 만들기 2탄 (0) | 2013.12.27 |
안드로이드 - PHP로 GCM 메시지 보내기 (0) | 2013.12.25 |
안드로이드 - php를 이용한 gcm 푸시 예제[2] (0) | 2013.12.25 |
안드로이드 - php를 이용한 gcm 푸시 예제[1] (0) | 2013.12.25 |
안드로이드 - 원하는 theme로 widget 생성하기 (0) | 2013.12.22 |