2013-01-13 403 views
0

當我希望每5分鐘運行一次服務而不需要重新啓動時,我應該在廣播接收機中使用意向過濾器。我希望你能夠明白?廣播接收機意向過濾器

由於

+0

如果我理解你的目標是正確的,你應該更好地使用AlarmManager http://developer.android.com/intl/ru/reference/android/app/AlarmManager.html – Viacheslav

+0

這是否工作沒有需要的應用程序正在運行? –

+0

是的,它可以用作Android服務。我的意思是在OS級別。 – Viacheslav

回答

1

使用AlarmManager

的一個例子

設定的報警

private void setAlarm(Context ctx, long timeToRestoreLivesInMillis) { 
     int perion = 1000; 
     AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE); 

     Intent i = new Intent(ctx, OnAlarmReceiver.class); 
     PendingIntent pi = PendingIntent.getBroadcast(ctx, 0, i, 0); 

     am.set(AlarmManager.RTC_WAKEUP, period, pi); 
} 

和一些接收機將接收一個Intent

public class OnAlarmReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // do something 
    } 
} 

和不要忘記註冊接收機在Manifest.xml

<receiver 
    android:name=".utils.OnAlarmReceiver" 
    android:enabled="true" 
    android:exported="false" > 
</receiver> 

閱讀方法說明文檔,我很久以前就與它合作過。

+0

謝謝,這非常有幫助。我需要在我的清單中放些東西嗎?很有意圖的過濾器? –

+0

奧克,還有最後一個問題,我需要在哪裏調用函數setAlarm?在主要活動? –

+0

哦,我發現了一些工作。非常感謝你! –