我开发了一个Android应用程序,它从parse.com等在线数据库服务器获取数据。我想安排一个进程,即每10秒或20秒获取数据和更新视图,即使应用程序未打开也会以固定延迟一次又一次地执行。我已经看到其他答案,但混淆使用报警管理器或scheduleexecutor。如果报警管理器那么请有人为警报管理器设置代码,这种代码设计得最佳,电池没有耗尽,否则应该使用scheduleexecutor然后请发布实现它的代码。我试过但是甚至无法实现简单的调度。提前谢谢!
答案 0 :(得分:0)
由于即使您的应用程序未处于活动状态它也能正常运行,因此服务绝对是您的选择。您可以使用计时器与服务器进行异步连接,您可以通过互联网找到易于理解的示例。
答案 1 :(得分:0)
您实际上可以使用两者,请参阅此链接以获取教程:
http://khurramitdeveloper.blogspot.com/2013/06/android-alarm-manager-to-start-service.html
答案 2 :(得分:0)
您应该使用包含Service
的{{1}}来设置延迟。如何设置Handler
的基础知识在android docs中。根据您的描述,我要做的是从onStartCommand中控制Service
Service
然后,您只需在private static final int LOOP_TIME = 1000 * 20; //20 seconds
private Handler loopHanlder = new Handler();
private Runnable taskToRepeat = new Runnable(){
@Override
public void run(){
//whatever you want to loop
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
handler.postDelayed(taskToRepeat, LOOP_TIME);
}
内启动或停止Service
。我假设您希望在启动后不断运行服务。如果您不这样做,则每次以这种方式广播和控制服务时,只需向Activity
添加标记即可切换操作。但是这个基本的设置应该让你前进。