对不起,我有一个问题。
我想创建一个服务,一旦设备启动并运行,就可以通过扩展BroadcastReceiver来启动。在服务类中,我想启动一个警报管理器,在一定时间后显示通知。然后,一旦时间过去,将显示通知,则应在下一个指定时间重新安排警报管理器。如何实现这一点,因为警报管理器设置功能需要待处理的意图,因为我在服务类中不需要挂起的意图。我坚持使用警报管理器而不是Timer,因为以下链接建议使用它:Which is better for a background service WakeLock or startForeground
代码:
public class BootCompletedReceiver extends BroadcastReceiver {
final static String TAG = "BootCompletedReceiver";
@Override
public void onReceive(Context context, Intent arg1) {
Log.w(TAG, "starting service...");
context.startService(new Intent(context, BookkeeperService.class));
}
}
import android.app.AlarmManager;
import android.app.Notification;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.PowerManager;
public class BookkeeperService extends Service {
AlarmManager alarmManager;
@Override
public void onCreate(){
super.onCreate();
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
// here I need to set the alarm to notify the user after certain time and then reschedule
// to the next event
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
谢谢
答案 0 :(得分:0)
如果您想通过闹钟向广播接收器传递消息,只需让闹钟在您闲暇时发送消息,然后开始注册以获得更多警报。您可以从服务中启动警报,并从那里自动维护警报。