99import android .content .Intent ;
1010import android .content .SharedPreferences ;
1111import android .preference .PreferenceManager ;
12+ import android .support .v4 .app .AlarmManagerCompat ;
1213import android .view .View ;
1314import android .widget .RemoteViews ;
1415
@@ -23,6 +24,7 @@ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] a
2324 RemoteViews remoteViews = new RemoteViews (context .getPackageName (), R .layout .widget );
2425 appWidgetManager .updateAppWidget (appWidgetId , remoteViews );
2526 updateAppWidget (context , appWidgetManager , appWidgetId );
27+ onEnabled (context );
2628 }
2729 }
2830
@@ -108,12 +110,14 @@ public void onReceive(Context context, Intent intent) {
108110 for (int appWidgetID : ids ) {
109111 updateAppWidget (context , appWidgetManager , appWidgetID );
110112 }
113+ onEnabled (context );
111114 }
112115 }
113116
114117 private PendingIntent createClockTickIntent (Context context ) {
115- Intent intent = new Intent (CLOCK_WIDGET_UPDATE );
116- return PendingIntent .getBroadcast (context , 0 , intent , PendingIntent .FLAG_UPDATE_CURRENT );
118+ Intent intent = new Intent (context , getClass ());
119+ intent .setAction (CLOCK_WIDGET_UPDATE );
120+ return PendingIntent .getBroadcast (context , 23 , intent , PendingIntent .FLAG_UPDATE_CURRENT );
117121 }
118122 protected PendingIntent getPendingSelfIntent (Context context , String action ) {
119123 Intent intent = new Intent (context , getClass ());
@@ -135,11 +139,12 @@ public void onDisabled(Context context) {
135139 @ Override
136140 public void onEnabled (Context context ) {
137141 super .onEnabled (context );
138- AlarmManager alarmManager = (AlarmManager )context .getSystemService (Context .ALARM_SERVICE );
142+ AlarmManager alarmManager = (AlarmManager ) context .getSystemService (Context .ALARM_SERVICE );
139143 Calendar calendar = Calendar .getInstance ();
140144 calendar .setTimeInMillis (System .currentTimeMillis ());
141145 calendar .add (Calendar .SECOND , 60 - calendar .get (Calendar .SECOND ));
142- alarmManager .setInexactRepeating (AlarmManager .RTC , calendar .getTimeInMillis (), 60000 , createClockTickIntent (context ));
146+ //alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 60000, createClockTickIntent(context));
147+ AlarmManagerCompat .setExact (alarmManager , AlarmManager .RTC , calendar .getTimeInMillis (), createClockTickIntent (context ));
143148 }
144149
145150 public void updateAppWidget (Context context , AppWidgetManager appWidgetManager , int appWidgetId ) {
0 commit comments