在后台持续运行服务以观察时间

时间:2015-12-10 17:14:54

标签: java android service

我有一个日期和时间存储在数据库中,我需要在后台持续监控时间和日期并在应用程序中运行一个功能,当时间到了,可以设置日期和时间,我只知道我需要服务来做到这一点,但不仅仅是这样。有人可以告诉我这是否可以实现?如果是的话,请建议我如何进一步继续。谢谢你...

1 个答案:

答案 0 :(得分:1)

Android有一个非常适合开发人员的课程:AlarmManager

所以,从数据库中取出日期 时间,用它定义一个警报事件,订阅你的应用程序以获取通知,并等到事件发生时你需要做的工作。

这是如何:

public class MyAlarm extends IntentService {
    private NotificationManager myAlarmNotificationManager;

    public MyAlarm() {
        super("MyAlarm");
    }


    //this send the notification
    private void sendNotification(String message) {
        Log.d("MyAlarm", "Preparing to send notification...: " + message);
        myAlarmNotificationManager = (NotificationManager) this
                .getSystemService(Context.NOTIFICATION_SERVICE);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, AlarmActivity.class), 0);

        NotificationCompat.Builder alamNotificationBuilder = new NotificationCompat.Builder(
                this).setContentTitle("Alarm").setSmallIcon(R.drawable.ic_launcher)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setContentText(message);


        alamNotificationBuilder.setContentIntent(contentIntent);
        myAlarmNotificationManager.notify(1, alamNotificationBuilder.build());
        Log.d("MyAlarm", "Notification sent.");
    }


     @Override
    public void onHandleIntent(Intent intent) {
        sendNotification("Do something");
    }
}