Skip to content

Commit e722ea9

Browse files
fixed android 9 clock not updating
1 parent 4cfaf05 commit e722ea9

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

app/src/main/java/com/jj/hangoverclock/ClockWidgetProvider.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.content.Intent;
1010
import android.content.SharedPreferences;
1111
import android.preference.PreferenceManager;
12+
import android.support.v4.app.AlarmManagerCompat;
1213
import android.view.View;
1314
import 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

Comments
 (0)