앱위젯에서 어떠한 상태를 저장하기 위해서는 단순히 메모리(static 변수나 intent )를 이용해서는 안됩니다. 그 이유는 핸드폰이 꺼졌을 경우에는 메모리 변수들은 사라지고, 또한 static으로 선언된 메모리 변수는 위젯을 삭제하게 되면 그 시점에서 가장 우선순위가 낮은 프로세스로 이동하게 됩니다. 그렇게 되면 언제든지 OS에 의해 변수를 포함한 프로세스가 종료될 수 있게됩니다. 앱위젯의 설정을 저장하는 것은 여러가지가 있지만, 본 포스트에서는 SharedPreferences 를 이용하여 설정을 저장하고 불러올 수 있도록 하겠습니다. 만들어볼 예제. Configure Activity에서 정수값을 저장하고 위젯에서 보여준다. 그 후에, 위젯에서 Configure Activity로 버튼을 눌러 이동하면..
안드로이드에서는 SDK 1.6 버전 이상부터는 위젯의 갱신 시간을 조절하는 android:updatePeriodMillis 를 기본 30분으로 지정하고 있습니다. 그 이유는 너무 잦은 화면 갱신은 베터리의 극심한!! 소모를 야기한다고 레퍼런스 문서에 나와있습니다. 따라서, 위젯의 업데이트 = 베터리의 소모 라는 것을 유념하여 주시고, 포스트 글을 봐주시기 바랍니다. 위젯을 업데이트 하는 방법은 2가지가 있습니다. 1. Background Service를 이용한 화면 갱신법 2. AlarmManager를 이용한 화면 갱신법. Service로 위젯을 업데이트하는 것은 베터리 소모가 조금 심합니다. 또한, 메모리 정리 어플에의해 종료가 될 수도 있지만, 몇초 단위의 업데이트를 할 수 있으므로, 알람매니저를 이..
이번 포스트는 위젯프로바이더입니다. 위젯 프로바이더의 간략한 설명을 드리도록 하겠습니다. The AppWidgetProvider class extends BroadcastReceiver as a convenience class to handle the App Widget broadcasts. 위젯 프로바이더 클래스는 브로드캐스트리시버의 확장임. (위젯에서 발생한 브로드케스트 이벤트를 처리하기위한 클래스) The AppWidgetProvider receives only the event broadcasts that are relevant to the App Widget, such as when the App Widget is updated, deleted, enabled, and disabled. When..
생각외로 AppWidgetManager가 뭐하는 것인지를 궁금하게 생각하시는 분이 많아 이번 포스트에서 그 내용을 간단히 다뤄보기로 했습니다. AppWidgetManager 참고자료는 아래 주소입니다. http://developer.android.com/reference/android/appwidget/AppWidgetManager.html SDK 레퍼런스에 보면 아래와 같이 써있습니다. Class Overview Updates AppWidget state; gets information about installed AppWidget providers and other AppWidget related state. AppWidget의 상태를 업데이트함; 설치된 AppWidget provider에 대한 정보..
지난 시간에 이어서 오늘은 기본적인 실습을 해보도록 하겠습니다. 먼저,,,전체적으로 해줘야 할 일을 정리해보겠습니다. 안드로이드에서 AppWidget을 사용하기 위해서는 다음과 같은 일련의 개발이 필요합니다. 1. manifest 수정 2. appWidgetProviderInfo Metadata 작성 3. Provider의 onUpdate 함수를 재정의한다. 4. 위젯과 버튼클릭시 호출할 엑티비티의 Layout을 설정합니다. 5. 엑티비티에서 위젯 매니저를 호출합니다. 상세하게 코드로 봅시다. (가장 하단에 안드로이드 프로젝트를 올려놓았습니다. 이클립스에서 열어서 확인해보시면 더 쉽게 보실수 있습니다.) 1. 먼저 manifest를 수정합니다. manifest.xml 안에 아래의 구문을 추가합니다. 이때..