Java 后台服务与interval不兼容-Android Studio

Java 后台服务与interval不兼容-Android Studio,java,android,service,background,Java,Android,Service,Background,我已经创建了一个在引导完成后启动的后台服务。在后台服务中,我以15分钟的间隔启动处理程序,检查我的数据库,如果在数据库中发现新的内容,则从数据库导出,但我的处理程序在40分钟后启动此服务;77; 60; 46; .... 分钟 下面是我如何启动处理程序的代码 @Override public int onStartCommand(Intent intent, int flags, int startId) { //Start handler mHandler = new Hand

我已经创建了一个在引导完成后启动的后台服务。在后台服务中,我以15分钟的间隔启动处理程序,检查我的数据库,如果在数据库中发现新的内容,则从数据库导出,但我的处理程序在40分钟后启动此服务;77; 60; 46; .... 分钟

下面是我如何启动处理程序的代码

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //Start handler
    mHandler = new Handler();
    startRepeatingTask();
    return START_STICKY;
}

void startRepeatingTask() {
    mStatusChecker.run();
}

Runnable mStatusChecker = new Runnable() {
    @Override
    public void run() {
        try{
            writeLogcat.main("SERVICE Started");

            //Check internet connection
            isInternetWorking();
            //Check for datum
            removeOldFiles();

        }finally {
            mHandler.postDelayed(mStatusChecker, 900000);
        }}};
从log cat文件中,我得到了处理程序启动的时间间隔

23.01.2017 00:30:01 - SERVICE Started
23.01.2017 01:47:23 - SERVICE Started
23.01.2017 02:39:51 - SERVICE Started
23.01.2017 03:15:08 - SERVICE Started
23.01.2017 03:23:53 - SERVICE Started
23.01.2017 03:33:25 - SERVICE Started

我怎样才能做得更好

你能说明你的服务是如何在清单中定义的吗?我根本不知道这是如何工作的,我认为在处理程序再次发布之前,操作系统可能会终止该服务。从来没有这样尝试过。我认为你可以考虑使用ARMARM管理器来代替?这是我在清单
中的服务,使用报警管理器可能会给您带来更好的结果。想要我写一个例子吗?当你能写的时候,请,谢谢