ACTION_DATE_CHANGED .... 요것이 잘 동작을 안하는거 같아 머리에 쥐가 납니다. ACTION_TIME_TICK 은 잘 동작 하는데 말입니다...
앱을 폰에 깔고 날짜를 변경해 보면 잘 동작 합니다. 근데 자정에 자동으로 날짜가 바뀔때는 동작을 안합니다. 무슨 조화 일까요???? 도와 주세요. 아래 코드 올립니다.
public class WidgetUpdater77<brReceiver> extends AppWidgetProvider {
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
context.stopService(new Intent(context, WidgetUpdateService77.class));
}
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
context.startService(new Intent(WidgetUpdateService77.ACTION_UPDATE));
}
@Override
public void onUpdate(Context context, AppWidgetManager appWM, int[] appWids) {
super.onUpdate(context, appWM, appWids);
context.startService(new Intent(WidgetUpdateService77.ACTION_UPDATE));
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
}
public static final class WidgetUpdateService77 extends Service {
static final String ACTION_UPDATE = "kial.action.WIDGET_UPDATE77";
private final static IntentFilter sIntentFilter;
static {
sIntentFilter = new IntentFilter();
sIntentFilter.addAction(Intent.ACTION_DATE_CHANGED);
sIntentFilter.addAction(Intent.ACTION_TIME_TICK);
}
@Override
public void onCreate() {
super.onCreate();
registerReceiver(brReceiver, sIntentFilter);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(brReceiver);
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
protected void onHandleIntent(Intent intent) {
ShowRemoteViews();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private final BroadcastReceiver brReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if(action.equals(Intent.ACTION_DATE_CHANGED)) {
context.startService(new Intent(WidgetUpdateService77.ACTION_UPDATE));
}else if(action.equals(Intent.ACTION_TIME_TICK)) {
CheckUpdateInformation_Wgt();
if(wgt!=null && wgt.equals("Wgt")){
context.startService(new Intent(WidgetUpdateService77.ACTION_UPDATE));
}
}
}
};
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
try{
if (ACTION_UPDATE.equals(intent.getAction())) {
..................
}
}catch(Exception e) {}
return START_STICKY;
}