1

当我希望服务每 5 分钟运行一次而不需要重新启动时,我应该在广播接收器中使用哪个意图过滤器?

4

1 回答 1

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

和一些接收者将收到一个意图

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>

阅读文档以获取方法解释,我很久以前就使用过它。

于 2013-01-13T13:32:59.877 回答