마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱위젯 업데이트 관련 질문 입니다.

0 추천
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;
  }
킴칸스 (200 포인트) 님이 2015년 10월 13일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...