我应该如何安排android中的进程以达到我的目的

时间:2014-03-11 13:25:34

标签: android eclipse alarmmanager

我开发了一个Android应用程序,它从parse.com等在线数据库服务器获取数据。我想安排一个进程,即每10秒或20秒获取数据和更新视图,即使应用程序未打开也会以固定延迟一次又一次地执行。我已经看到其他答案,但混淆使用报警管理器或scheduleexecutor。如果报警管理器那么请有人为警报管理器设置代码,这种代码设计得最佳,电池没有耗尽,否则应该使用scheduleexecutor然后请发布实现它的代码。我试过但是甚至无法实现简单的调度。提前谢谢!

3 个答案:

答案 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添加标记即可切换操作。但是这个基本的设置应该让你前进。