Java 后台服务与interval不兼容-Android Studio
我已经创建了一个在引导完成后启动的后台服务。在后台服务中,我以15分钟的间隔启动处理程序,检查我的数据库,如果在数据库中发现新的内容,则从数据库导出,但我的处理程序在40分钟后启动此服务;77; 60; 46; .... 分钟 下面是我如何启动处理程序的代码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
@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管理器来代替?这是我在清单
中的服务,使用报警管理器可能会给您带来更好的结果。想要我写一个例子吗?当你能写的时候,请,谢谢