рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рд░реВрд╕реА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдЧреЗрдЯреНрд╕ рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВ, рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЬрдЯрд┐рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐, рдореИрдВ рдЖрдкрдХреЛ
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 3 рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА
- рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛
- рдЦрд╝рд╛рдХрд╛
рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА - рдпрд╣ рдПрдХ xml рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдЗрдирдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЖрдХрд╛рд░, рдЗрд╕рдХреА рдЕрджреНрдпрддрди рдЖрд╡реГрддреНрддрд┐, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ (Res / xml / hello_widget_provider.xml) рдЬреИрд╕реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
- <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
- <appwidget- рдкреНрд░рджрд╛рддрд╛ xmlns: android = "schemas.android.com/apk/res/android"
- Android: minWidth = "146dip"
- Android: minHeight = "72dip"
- Android: рдЕрдкрдбреЗрдЯрдкреЗрд░рд┐рдУрдорд┐рд▓рд┐рд╕ = "86400000"
- Android: initialLayout = "@ рд▓реЗрдЖрдЙрдЯ / рдореБрдЦреНрдп" />
рд╣рдо рдХрд┐рд╕реА рднреА рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Google рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░
(рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ * 74) - 2 рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИред updatePeriodMillis рд╡рд┐рдЬреЗрдЯ рд░рд┐рдлреНрд░реЗрд╢ рд░реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдЯрд░реА рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ 30 рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред initialLayout рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИред
рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ - рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕реЗ AppWidgetProvider рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд░рд╣реЗрдЧрд╛ (src / ru / example / android / widget / HelloWidget.java)ред
- рдкреИрдХреЗрдЬ ru.example.android.widget ;
- рдЖрдпрд╛рдд android.appwidget.AppWidgetProvider ;
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ HelloWidget рдлреИрд▓реА AppWidgetProvider {
- }
рд▓реЗрдЖрдЙрдЯ - рдпрд╣ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдпрд╛ рджреГрд╢реНрдп рдкрд░рдд рд╣реИ, рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: (Res / layout /main.xml)ред
- <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
- <LinearLayout xmlns: android = " schemas.android.com/apk/res/android"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "fill_parent"
- Android: рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = "рд╡рд░реНрдЯрд┐рдХрд▓"
- Android: рдкреГрд╖реНрдарднреВрдорд┐ = "@ рд░рдВрдЧ: рд╕рдлреЗрдж / рд╕рдлреЗрдж"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рдХреЗрдВрджреНрд░"
- Android: layout_height = "wra_content" >
- <TextView android: id = "@ + id / widget_textview"
- Android: рдкрд╛рда = "рд╣реИрд▓реЛ рд╡рд┐рдЬреЗрдЯ"
- Android: Layout_height = "wra_content"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рд╕реЗрдВрдЯрд░_рд╣реЛрд░реНрдЧреЗрдирд┐рдХ | рд╕реЗрдВрдЯрд░"
- Android: textColor = " @android : color / black" />
- </ LinearLayout >
рд╣рдордиреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЗрдВ рдХреАрдВ, рдпрд╣ AndroidManifest.xml рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, <code> ... </ application> рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
- <рд░рд┐рд╕реАрд╡рд░ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = ".widget.HelloWidget" Android: label = "@ string / app_name" >
- <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <Action android: name = "android.appwidget.action.APPWIDGET_UPDATE" />
- </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <рдореЗрдЯрд╛-рдбреЗрдЯрд╛ Android: рдирд╛рдо = "android.appwidget.provider"
- Android: рд╕рдВрд╕рд╛рдзрди = "@ xml / hello_widget_provider" />
- </ рд░рд┐рд╕реАрд╡рд░ >
рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ!

рд╣рдорд╛рд░рд╛ рд╡рд┐рдЬреЗрдЯ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдмреЗрдХрд╛рд░ рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВред
рдПрдХ рдмрдЯрди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдирд╛ рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдШрдЯрдирд╛ рдХреЛ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд▓рдЯрдХрд╛ рджреЗрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдмрдЯрди рдХреНрд▓рд┐рдХ рд╕реЗ рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ (Res / layout /main.xml) рдореЗрдВ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВред
- <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
- <LinearLayout xmlns: android = " schemas.android.com/apk/res/android"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "fill_parent"
- Android: рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = "рд╡рд░реНрдЯрд┐рдХрд▓"
- Android: рдкреГрд╖реНрдарднреВрдорд┐ = "@ рд░рдВрдЧ: рд╕рдлреЗрдж / рд╕рдлреЗрдж"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рдХреЗрдВрджреНрд░"
- Android: layout_height = "wra_content" >
- <TextView android: id = "@ + id / widget_textview"
- Android: рдкрд╛рда = "рд╣реИрд▓реЛ рд╡рд┐рдЬреЗрдЯ"
- Android: Layout_height = "wra_content"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рд╕реЗрдВрдЯрд░_рд╣реЛрд░реНрдЧреЗрдирд┐рдХ | рд╕реЗрдВрдЯрд░"
- Android: textColor = " @android : color / black" />
- <рдмрдЯрди Android: id = "@ + id / widget_button"
- Android: рдкрд╛рда = "рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ"
- Android: Layout_height = "wra_content"
- рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "рд░реИрдк_ рдХреЙрдиреНрдЯреЗрдВрдЯ" />
- </ LinearLayout >
рд╣рдо рдкреНрд░рджрд╛рддрд╛ рд╡рд░реНрдЧ (src / ru / example / android / widget / HelloWidget.java) рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдШрдЯрдирд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ HelloWidget рдлреИрд▓реА AppWidgetProvider {
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ ACTION_WIDGET_RECEIVER = "ActionReceiverWidget" ;
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onUpdate ( рд╕рдВрджрд░реНрдн рд╕рдВрджрд░реНрдн, AppWidgetManager appWidgetManager, int [ ] appWidgetIds ) {
- // рдирдпрд╛ рд░рд┐рдореЛрдЯ рд╡реНрдпреВ рдмрдирд╛рдПрдВ
- RemoteViews RemoteViews = рдирдпрд╛ RemoteViews ( рд╕рдВрджрд░реНрднред GetPackageName ( ) , R. рд▓реЗрдЖрдЙрдЯ ; рдореБрдЦреНрдп ) ;
- // рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╢рдп рддреИрдпрд╛рд░ рдХрд░реЗрдВ
- рдЖрд╢рдп рд╕рдХреНрд░рд┐рдп = рдирдпрд╛ рдЖрд╢рдп ( рд╕рдВрджрд░реНрдн, HelloWidgetред рд╡рд░реНрдЧ ) ;
- рд╕рдХреНрд░рд┐рдпред setAction ( ACTION_WIDGET_RECEIVER ) ;
- рд╕рдХреНрд░рд┐рдпред putExtra ( "рд╕рдВрджреЗрд╢" , "рд╣реИрд▓реЛ рд╣рдмреНрд░рд╣реНрд░рдм " ) ;
- // рд╣рдорд╛рд░реА рдШрдЯрдирд╛ рдмрдирд╛рдПрдБ
- рд▓рдВрдмрд┐рдд рдХреНрд░рд┐рдпрд╛ред рд▓рдВрдмрд┐рдд = рд▓рдВрдмрд┐рддред getBroadcast ( рд╕рдВрджрд░реНрдн, 0 , рд╕рдХреНрд░рд┐рдп, 0 ) ;
- // рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
- remoteViewsред setOnClickPendingIntent ( R. id ред widget_button , actionPendingIntent ) ;
- // рдЕрдкрдбреЗрдЯ рд╡рд┐рдЬреЗрдЯ
- appWidgetManagerред updateAppWidget ( appWidgetIds, RemoteViews ) ;
- }
- @ рдУрд╡рд░рд░рд╛рдЗрдб
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onReceive ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп ) {
- // рд╣рдорд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рдкрдХрдбрд╝реЗрдВ, рдЪреЗрдХ рдХрд░реЗрдВ рдФрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рд░реНрд░рд╡рд╛рдИ = рдЗрд░рд╛рджрд╛ред getAction ( ) ;
- рдЕрдЧрд░ ( ACTION_WIDGET_RECEIVERред рдмрд░рд╛рдмрд░ ( рдХреНрд░рд┐рдпрд╛ ) ) {
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрджреЗрд╢ = "рдЕрд╢рдХреНрдд" ;
- рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {
- рд╕рдВрджреЗрд╢ = рдЖрд╢рдпред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
- } рдкрдХрдбрд╝ ( NullPointerException e ) {
- рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдИ ( "рддреНрд░реБрдЯрд┐" , "рд╕рдВрджреЗрд╢ = рдЕрд╢рдХреНрдд" ) ;
- }
- рдЯреЛрд╕реНрдЯред makeText ( рд╕рдВрджрд░реНрдн, рд╕рдВрджреЗрд╢, рдЯреЛрд╕реНрдЯред LENGTH_SHORT ) ред рд╢реЛ ( ) ;
- }
- рд╕реБрдкрд░ ред onReceive ( рд╕рдВрджрд░реНрдн, рдЖрд╢рдп ) ;
- }
- }
рдХрдХреНрд╖рд╛ рдореЗрдВ 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ - onUpdate рдФрд░ onReceiveред рдЬрдм рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдСрдирдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЕрдкрдбреЗрдЯ рдЕрдкрдбреЗрдЯ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдкрдбреЗрдЯPeriodMillis = "86400000" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде Res / xml / hello_widget_provider.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред OnReceive рд╡рд┐рдзрд┐ BroadcastReceiver рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИред
рдЖрдк рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ, рдЬреИрд╕реЗ рдкрд╛рда, рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рдВрдкреВрд░реНрдг рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреВрд░рд╕реНрде рджреГрд╢реНрдп рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рджреБрд░реНрд▓рдн рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдкрд╛рда, рдЪрд┐рддреНрд░ рдФрд░ рдХреНрд▓рд┐рдХ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдирд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ 3 рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рдкреНрд░рд╕рд╛рд░рдг рдлреЗрдВрдХ рджреЛ
- рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░реЗрдВ
- рд╕реЗрд╡рд╛ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рдХрд░реЗрдВ
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ (рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрджреЗрд╢) рднреЗрдЬреЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рддрд░рд╣ рд╣реИред PendingIntent рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрдкрдирд╛ рдИрд╡реЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ RemoteViews рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ onReceive рдореЗрдердб рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ "рдЗрд╡реЗрдВрдЯ" рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЯреЛрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред
AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛрдбрд╝реЗрдВ:
- <рд░рд┐рд╕реАрд╡рд░ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = ".widget.HelloWidget" Android: label = "@ string / app_name" >
- <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <Action android: name = "android.appwidget.action.APPWIDGET_UPDATE" />
- < Action android: name = "ru.example.android.widget.ACTION_WIDGET_RECEIVER" />
- </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
- <рдореЗрдЯрд╛-рдбреЗрдЯрд╛ Android: рдирд╛рдо = "android.appwidget.provider"
- Android: рд╕рдВрд╕рд╛рдзрди = "@ xml / hello_widget_provider" />
- </ рд░рд┐рд╕реАрд╡рд░ >
рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕рдВрдХрд▓рди рдФрд░ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред

рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:
рдкреАрдПрд╕ рдореИрдВрдиреЗ рд╣рд░ рдЪреАрдЬ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддрд╛рдХрд┐ рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рдкрд░реЗрд╢рд╛рди рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред