티스토리 뷰

App Widgets

AppWidgetProviderInfo Metadata 추가하기

AppWidgetProviderInfo 는 앱 위젯의 필수적인 값들-최소 레이아웃 크기, 초기 레이아웃 리소스, 앱 위젯을 업데이트하고 추가적으로 구성 액티비티를 적시에 실행하기 -을 정의한다. appwidget-provider 를 사용해서 XML리소스에서 <AppWidgetProviderInfo> 객체를 정의하고 res/xml/에 정의한다.

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   
android:minWidth="294dp"
   
android:minHeight="72dp"
   
android:updatePeriodMillis="86400000"
   
android:previewImage="@drawable/preview"
   
android:initialLayout="@layout/example_appwidget"
   
android:configure="com.example.android.ExampleAppWidgetConfigure"
   
android:resizeMode="horizontal|vertical">
</appwidget-provider>

<appwidget-provider > 속성의 요약

  • minWidth, minHeight

    앱 위젯 레이아웃에서 요구하는 최소하는 공간

    기본 홈 스크린 위치 앱 위젯은 윈도우안에서 정의된 높이와 너비를 가진 셀의 그리드에기반한다. 만약 앱 위젯의 최소 너비나 높이가 셀의 크기와 맞지 않는다면, 앱 위젯의 넓이는 거의 셀의 크기로 맞춰진다.

    홈 스크린의 레이아웃 방향이 변할 수 있기 때문에, 썸(thumb)의 방식처럼 한 셀의 높이와 너비에 대한 74픽셀의 최악의 경우의 셀 크기를 가정해야한다. 그러나 최종 면적에서 2를 빼서, 픽셀 계산에서 발생되는 정수 반올림 오류를 고려한다.

    최소 너비와 높이를 찾아내기 위한 공식 (dp)
    (number of cells * 74) - 2

  • updatePeriodMillis

    얼마나 자주 앱 위젯 프레임워크가 onUpdate() 콜백 메소드를 호출해서 AppWidgetProvider 에서 업데이트를 요구하는지 정의한다. 실제 업데이트는 정확인 이 값을 가지고 이뤄지는지 보장할 수 없으며 가능한 드물게 업데이트하기를 권장한다. - 한 시간에 한번 이하가 배터리를 절약할 수 있다. 사용자가 빈도를 조절할 수 있게 하는 것도 필요하다. - 어떤 사용자들은 증권 시세표가 15분마다 업데이트가 되길 원하고 또는 하루에 4번 업데이트 되길 원할 수 도 있다.

    Note : 만약 업데이트를 해야할 때 기기가 휴면상태라면, 업데이트를 하기 위해 깨어난다. 만약 시간 당 한번 이상 업데이트를 하지 않는다면, 그것은 배터리 수명에 크게 영향을 끼치지 않는다. 그러나 자주 업데이트를 하거나, 휴면상태에는 업데이트 하길 원하지 않는다면, 알람을 이용한 업데이트를 사용하면 디바이스를 깨우지 않게 된다. 그렇게 하기 위해서는, 알람을 인텐트로 설정해 놓고, AppWidgetProvider 는 AlarmManager를 사용해서 인텐트를 받게 한다. 알람 타입을 ELAPSED_REALTIME 나 RTC로 설정해서 오직 디바이스가 깨어 있을 때만 전달되도록 한다. 그리고 updatePeriodMillis 를 0으로 설정한다.

  • initialLayout

    앱 위젯 레이아웃이 정의되어 있는 리소스 나타낸다.
  • configure

    사용자가 앱 위젯을 추가할 때 실행되는 액티비티를 명시한다.
  • previewImage ( 3.0부터)

    앱 위젯의 미리보기를 명시한다. 만약 선언하지 않았다면 애플리케이션의 아이콘이 대신 보여진다.
  • autoAdvanceViewId

  • resizeMode

    위젯의 크기가 조절될 수 있는 방법을 나타낸다.

    "horizontal", "vertical", and "none"

댓글