//package com.hh.hhomc.utils;
//
//import android.annotation.SuppressLint;
//import android.app.AlarmManager;
//import android.app.PendingIntent;
//import android.content.Context;
//import android.content.Intent;
//import android.os.Build;
//
//import com.hh.hhomc.services.BackgroundService;
//
//import java.util.Calendar;
//
//import static com.hh.hhomc.common.Constants.VALUE.TIME_HEARTBEAT;
//
//public class AlarmManagerUtils {
//
//    private static final long TIME_INTERVAL = TIME_HEARTBEAT;//闹钟执行任务的时间间隔
//
//    private static Context context;
//    public static AlarmManager am;
//    public static PendingIntent pendingIntent;
//
//    private Calendar calendar;
//    //
//    private AlarmManagerUtils(Context aContext) {
//        this.context = aContext;
//    }
//
//    //singleton
//    private static AlarmManagerUtils instance = null;
//
//    public static AlarmManagerUtils getInstance(Context aContext) {
//        if (instance == null) {
//            synchronized (AlarmManagerUtils.class) {
//                if (instance == null) {
//                    instance = new AlarmManagerUtils(aContext);
//                    createGetUpAlarmManager(aContext);
//                }
//            }
//        }
//        return instance;
//    }
//
//    public static void createGetUpAlarmManager(Context aContext) {
//        am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
//        Intent intent = new Intent(context, BackgroundService.class);
//        pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);//每隔10秒启动一次服务
//    }
//
//    @SuppressLint("NewApi")
//    public void getUpAlarmManagerStartWork() {
//        calendar = Calendar.getInstance();
//        calendar.set(Calendar.SECOND,10);
//        calendar.set(Calendar.SECOND,20);
//        calendar.set(Calendar.SECOND,15);
//
//        //版本适配 System.currentTimeMillis()
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
//            am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
//                    calendar.getTimeInMillis(), pendingIntent);
//        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
//            am.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
//                    pendingIntent);
//        } else {
//            am.setRepeating(AlarmManager.RTC_WAKEUP,
//                    calendar.getTimeInMillis(), TIME_INTERVAL, pendingIntent);
//        }
//    }
//
//    @SuppressLint("NewApi")
//    public void getUpAlarmManagerWorkOnOthers(long time) {
//        //高版本重复设置闹钟达到低版本中setRepeating相同效果
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
//            am.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP,
//                    System.currentTimeMillis() + time, pendingIntent);
//        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
//            am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
//                    + time, pendingIntent);
//        }
//    }
//}
