рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд╡рд┐рдЬреЗрдЯ

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рд░реВрд╕реА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдЧреЗрдЯреНрд╕ рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВ, рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЬрдЯрд┐рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐, рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 3 рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА
  2. рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛
  3. рдЦрд╝рд╛рдХрд╛

рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдЬрд╛рдирдХрд╛рд░реА - рдпрд╣ рдПрдХ xml рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдЗрдирдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЖрдХрд╛рд░, рдЗрд╕рдХреА рдЕрджреНрдпрддрди рдЖрд╡реГрддреНрддрд┐, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ (Res / xml / hello_widget_provider.xml) рдЬреИрд╕реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
  1. <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
  2. <appwidget- рдкреНрд░рджрд╛рддрд╛ xmlns: android = "schemas.android.com/apk/res/android"
  3. Android: minWidth = "146dip"
  4. Android: minHeight = "72dip"
  5. Android: рдЕрдкрдбреЗрдЯрдкреЗрд░рд┐рдУрдорд┐рд▓рд┐рд╕ = "86400000"
  6. Android: initialLayout = "@ рд▓реЗрдЖрдЙрдЯ / рдореБрдЦреНрдп" />

рд╣рдо рдХрд┐рд╕реА рднреА рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Google рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░ (рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ * 74) - 2 рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИред updatePeriodMillis рд╡рд┐рдЬреЗрдЯ рд░рд┐рдлреНрд░реЗрд╢ рд░реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдмреИрдЯрд░реА рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ 30 рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред initialLayout рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИред

рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ - рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕реЗ AppWidgetProvider рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд░рд╣реЗрдЧрд╛ (src / ru / example / android / widget / HelloWidget.java)ред
  1. рдкреИрдХреЗрдЬ ru.example.android.widget ;
  2. рдЖрдпрд╛рдд android.appwidget.AppWidgetProvider ;
  3. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ HelloWidget рдлреИрд▓реА AppWidgetProvider {
  4. }


рд▓реЗрдЖрдЙрдЯ - рдпрд╣ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдпрд╛ рджреГрд╢реНрдп рдкрд░рдд рд╣реИ, рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: (Res / layout /main.xml)ред
  1. <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
  2. <LinearLayout xmlns: android = " schemas.android.com/apk/res/android"
  3. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "fill_parent"
  4. Android: рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = "рд╡рд░реНрдЯрд┐рдХрд▓"
  5. Android: рдкреГрд╖реНрдарднреВрдорд┐ = "@ рд░рдВрдЧ: рд╕рдлреЗрдж / рд╕рдлреЗрдж"
  6. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рдХреЗрдВрджреНрд░"
  7. Android: layout_height = "wra_content" >
  8. <TextView android: id = "@ + id / widget_textview"
  9. Android: рдкрд╛рда = "рд╣реИрд▓реЛ рд╡рд┐рдЬреЗрдЯ"
  10. Android: Layout_height = "wra_content"
  11. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"
  12. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рд╕реЗрдВрдЯрд░_рд╣реЛрд░реНрдЧреЗрдирд┐рдХ | рд╕реЗрдВрдЯрд░"
  13. Android: textColor = " @android : color / black" />
  14. </ LinearLayout >


рд╣рдордиреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЗрдВ рдХреАрдВ, рдпрд╣ AndroidManifest.xml рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, <code> ... </ application> рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
  1. <рд░рд┐рд╕реАрд╡рд░ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = ".widget.HelloWidget" Android: label = "@ string / app_name" >
  2. <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  3. <Action android: name = "android.appwidget.action.APPWIDGET_UPDATE" />
  4. </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  5. <рдореЗрдЯрд╛-рдбреЗрдЯрд╛ Android: рдирд╛рдо = "android.appwidget.provider"
  6. Android: рд╕рдВрд╕рд╛рдзрди = "@ xml / hello_widget_provider" />
  7. </ рд░рд┐рд╕реАрд╡рд░ >


рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ!


рд╣рдорд╛рд░рд╛ рд╡рд┐рдЬреЗрдЯ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдмреЗрдХрд╛рд░ рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВред

рдПрдХ рдмрдЯрди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдирд╛ рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдШрдЯрдирд╛ рдХреЛ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд▓рдЯрдХрд╛ рджреЗрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдмрдЯрди рдХреНрд▓рд┐рдХ рд╕реЗ рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ (Res / layout /main.xml) рдореЗрдВ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВред
  1. <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
  2. <LinearLayout xmlns: android = " schemas.android.com/apk/res/android"
  3. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "fill_parent"
  4. Android: рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = "рд╡рд░реНрдЯрд┐рдХрд▓"
  5. Android: рдкреГрд╖реНрдарднреВрдорд┐ = "@ рд░рдВрдЧ: рд╕рдлреЗрдж / рд╕рдлреЗрдж"
  6. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рдХреЗрдВрджреНрд░"
  7. Android: layout_height = "wra_content" >
  8. <TextView android: id = "@ + id / widget_textview"
  9. Android: рдкрд╛рда = "рд╣реИрд▓реЛ рд╡рд┐рдЬреЗрдЯ"
  10. Android: Layout_height = "wra_content"
  11. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"
  12. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_рдЧреНрд░реЗрд╡рд┐рдЯреА = "рд╕реЗрдВрдЯрд░_рд╣реЛрд░реНрдЧреЗрдирд┐рдХ | рд╕реЗрдВрдЯрд░"
  13. Android: textColor = " @android : color / black" />
  14. <рдмрдЯрди Android: id = "@ + id / widget_button"
  15. Android: рдкрд╛рда = "рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ"
  16. Android: Layout_height = "wra_content"
  17. рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "рд░реИрдк_ рдХреЙрдиреНрдЯреЗрдВрдЯ" />
  18. </ LinearLayout >


рд╣рдо рдкреНрд░рджрд╛рддрд╛ рд╡рд░реНрдЧ (src / ru / example / android / widget / HelloWidget.java) рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдШрдЯрдирд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
  1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ HelloWidget рдлреИрд▓реА AppWidgetProvider {
  2. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ ACTION_WIDGET_RECEIVER = "ActionReceiverWidget" ;
  3. @ рдУрд╡рд░рд░рд╛рдЗрдб
  4. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onUpdate ( рд╕рдВрджрд░реНрдн рд╕рдВрджрд░реНрдн, AppWidgetManager appWidgetManager, int [ ] appWidgetIds ) {
  5. // рдирдпрд╛ рд░рд┐рдореЛрдЯ рд╡реНрдпреВ рдмрдирд╛рдПрдВ
  6. RemoteViews RemoteViews = рдирдпрд╛ RemoteViews ( рд╕рдВрджрд░реНрднред GetPackageName ( ) , R. рд▓реЗрдЖрдЙрдЯ ; рдореБрдЦреНрдп ) ;
  7. // рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╢рдп рддреИрдпрд╛рд░ рдХрд░реЗрдВ
  8. рдЖрд╢рдп рд╕рдХреНрд░рд┐рдп = рдирдпрд╛ рдЖрд╢рдп ( рд╕рдВрджрд░реНрдн, HelloWidgetред рд╡рд░реНрдЧ ) ;
  9. рд╕рдХреНрд░рд┐рдпред setAction ( ACTION_WIDGET_RECEIVER ) ;
  10. рд╕рдХреНрд░рд┐рдпред putExtra ( "рд╕рдВрджреЗрд╢" , "рд╣реИрд▓реЛ рд╣рдмреНрд░рд╣реНрд░рдм " ) ;
  11. // рд╣рдорд╛рд░реА рдШрдЯрдирд╛ рдмрдирд╛рдПрдБ
  12. рд▓рдВрдмрд┐рдд рдХреНрд░рд┐рдпрд╛ред рд▓рдВрдмрд┐рдд = рд▓рдВрдмрд┐рддред getBroadcast ( рд╕рдВрджрд░реНрдн, 0 , рд╕рдХреНрд░рд┐рдп, 0 ) ;
  13. // рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
  14. remoteViewsред setOnClickPendingIntent ( R. id ред widget_button , actionPendingIntent ) ;
  15. // рдЕрдкрдбреЗрдЯ рд╡рд┐рдЬреЗрдЯ
  16. appWidgetManagerред updateAppWidget ( appWidgetIds, RemoteViews ) ;
  17. }
  18. @ рдУрд╡рд░рд░рд╛рдЗрдб
  19. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onReceive ( рд╕рдВрджрд░реНрдн рдкреНрд░рд╕рдВрдЧ, рдЖрд╢рдп рдЕрднрд┐рдкреНрд░рд╛рдп ) {
  20. // рд╣рдорд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рдкрдХрдбрд╝реЗрдВ, рдЪреЗрдХ рдХрд░реЗрдВ рдФрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
  21. рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рд░реНрд░рд╡рд╛рдИ = рдЗрд░рд╛рджрд╛ред getAction ( ) ;
  22. рдЕрдЧрд░ ( ACTION_WIDGET_RECEIVERред рдмрд░рд╛рдмрд░ ( рдХреНрд░рд┐рдпрд╛ ) ) {
  23. рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрджреЗрд╢ = "рдЕрд╢рдХреНрдд" ;
  24. рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {
  25. рд╕рдВрджреЗрд╢ = рдЖрд╢рдпред getStringExtra ( "рд╕рдВрджреЗрд╢" ) ;
  26. } рдкрдХрдбрд╝ ( NullPointerException e ) {
  27. рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдИ ( "рддреНрд░реБрдЯрд┐" , "рд╕рдВрджреЗрд╢ = рдЕрд╢рдХреНрдд" ) ;
  28. }
  29. рдЯреЛрд╕реНрдЯред makeText ( рд╕рдВрджрд░реНрдн, рд╕рдВрджреЗрд╢, рдЯреЛрд╕реНрдЯред LENGTH_SHORT ) ред рд╢реЛ ( ) ;
  30. }
  31. рд╕реБрдкрд░ ред onReceive ( рд╕рдВрджрд░реНрдн, рдЖрд╢рдп ) ;
  32. }
  33. }

рдХрдХреНрд╖рд╛ рдореЗрдВ 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ - onUpdate рдФрд░ onReceiveред рдЬрдм рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдСрдирдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЕрдкрдбреЗрдЯ рдЕрдкрдбреЗрдЯ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдкрдбреЗрдЯPeriodMillis = "86400000" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде Res / xml / hello_widget_provider.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред OnReceive рд╡рд┐рдзрд┐ BroadcastReceiver рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИред
рдЖрдк рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ, рдЬреИрд╕реЗ рдкрд╛рда, рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рдВрдкреВрд░реНрдг рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рд╣рдореЗрд╢рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреВрд░рд╕реНрде рджреГрд╢реНрдп рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рджреБрд░реНрд▓рдн рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдкрд╛рда, рдЪрд┐рддреНрд░ рдФрд░ рдХреНрд▓рд┐рдХ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдШрдЯрдирд╛ рдХреЛ рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдирд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ 3 рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ (рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрджреЗрд╢) рднреЗрдЬреЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рддрд░рд╣ рд╣реИред PendingIntent рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрдкрдирд╛ рдИрд╡реЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ RemoteViews рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ onReceive рдореЗрдердб рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ "рдЗрд╡реЗрдВрдЯ" рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЯреЛрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред

AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛрдбрд╝реЗрдВ:
  1. <рд░рд┐рд╕реАрд╡рд░ рдПрдВрдбреНрд░реЙрдЗрдб: рдирд╛рдо = ".widget.HelloWidget" Android: label = "@ string / app_name" >
  2. <рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  3. <Action android: name = "android.appwidget.action.APPWIDGET_UPDATE" />
  4. < Action android: name = "ru.example.android.widget.ACTION_WIDGET_RECEIVER" />
  5. </ рдЖрд╢рдп-рдлрд╝рд┐рд▓реНрдЯрд░ >
  6. <рдореЗрдЯрд╛-рдбреЗрдЯрд╛ Android: рдирд╛рдо = "android.appwidget.provider"
  7. Android: рд╕рдВрд╕рд╛рдзрди = "@ xml / hello_widget_provider" />
  8. </ рд░рд┐рд╕реАрд╡рд░ >


рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╕рдВрдХрд▓рди рдФрд░ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред


рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:


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

Source: https://habr.com/ru/post/In114515/


All Articles