2015-07-03 59 views
0

我試圖在Android中使用廣播接收器來執行一些代碼,當日更改。廣播接收器的日更改

這裏是我的代碼,但不能讓它的工作

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); 
} 


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)) 
     { 
      System.out.println("Broadcast Activated"); 
     } 
    } 
}; 

有什麼建議?

回答

0

您註冊了接收器嗎?根據文檔(http://developer.android.com/reference/android/content/BroadcastReceiver.html),您需要通過調用Context.registerReceiver()來註冊它,或者通過AndroidManifest.xml中的標籤靜態發佈一個實現。

+0

是的,我做到了,忘了把它: @覆蓋 \t保護無效的onCreate(捆綁savedInstanceState){ \t \t super.onCreate(savedInstanceState); \t \t \t \t registerReceiver(m_timeChangedReceiver,s_intentFilter); –

+0

您是否註冊了清單中的意圖? Malthan

+0

另外請記住,只有當用戶手動更改時間設置時,纔會觸發這些操作。 – Malthan

0

改爲使用AlarmManager並在第二天午夜安排BroadCast意向。聲明您用作Manifest中PendingIntent目標的BroadcastReceiver。

注意:設備關閉時報警會丟失,因此您應該在重新啓動後檢查日期,並在需要時重新編程報警。