2014-06-10 4 views
0

사용자가 Date를 수동으로 변경할 때 이벤트를받는 브로드 캐스트 수신기가 있습니다. 그러나 그가 변경 한 이전 날짜가 무엇인지 찾을 수 없습니다. 예 - 날짜가 2014 년 6 월 5 일이고 2014 년 1 월 6 일로 변경되었습니다. 이전 날짜 인 2014 년 5 월 20 일을 알고 싶습니다. 도와주세요Android 날짜가 변경됨 방송 수신기

+0

android.intent.action.DATE_CHANGED이 변경된 날짜에 대한 의도이다. –

+0

그 때문에 매분마다 서비스를 계속 실행하고 시간을 sharedpreference의 값으로 업데이트해야합니다. –

+0

답장을 보내 주셔서 감사합니다.하지만 사용자가 변경된 이전 날짜를 알고 싶습니다. 사용자가 변경 한 날짜를 알려주는 브로드 캐스트 수신기에서 사용할 수있는 속성이나 메서드가 있습니까? –

답변

0

ACTION_TIME_TICK을 등록하고 매분마다 현재 날짜를 기록 할 수 있습니다.

 static { 
     s_intentFilter = new IntentFilter(); 
     s_intentFilter.addAction(Intent.ACTION_TIME_TICK); 
     s_intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); 
     s_intentFilter.addAction(Intent.ACTION_TIME_CHANGED); 
    } 

과 방송 수신기 :

0

변경 날짜를 지정하는 목적은

android.intent.action.DATE_CHANGED 

는 텐트 필터를 만들기 튜토리얼을 http://www.tutorialspoint.com/android/android_broadcast_receivers.htm

를 참조하여이 의도 리스너를 설정입니다

private final BroadcastReceiver m_timeChangedReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      final String action = intent.getAction(); 

      if (action.equals(Intent.ACTION_TIME_CHANGED) || 
       action.equals(Intent.ACTION_TIMEZONE_CHANGED)) 
      { 
       doWorkSon(); 
      } 
     } 
    }; 

수신기 등록 :

 public void onCreate() { 
     super.onCreate(); 
     registerReceiver(m_timeChangedReceiver, s_intentFilter);  
    } 

을하고 등록을 취소 :

 public void onDestroy() { 
     super.onDestroy(); 
     unregisterReceiver(m_timeChangedReceiver);  
    }