2011-10-11 57 views
1

我能够更新sqlite数据库并通过我的活动中的线程检索数据。但我需要使用服务更新数据库,它将每5分钟更新一次数据库,无论我的应用程序是否运行。所以当我运行应用程序时,我将从当前数据库获取数据。 我在写服务时被卡住来更新数据库。可以有人指导。如何使用服务更新android中的sqlite数据库

回答

2

您的服务类 Timer timer=new Timer();
上创建一个定时器对象上创建

@Override 
public void onCreate() 
{ 
    super.onCreate(); 
    timer.schedule(new DelayedTask(),300, 300000);// 300000 is 5min 

} 

类DelayedTask的

private class DelayedTask extends TimerTask 
{ 

    @Override 
    public void run() { 
     Log.i(tag,"Timer Task executing"); 

     // code for updating sqlite database 


    } 

} 
+0

'ScheduledExecutorService'通常比'TimerTask'更受欢迎,这并不能解决Android随时可能停止服务的问题。如果发生这种情况,计划的任务将不会执行。 – spatulamania

+0

上面的代码工作正常,我测试过了。 – Sandy

+0

感谢x很多桑迪。这个对我有用。 – Naba

0

这个问题是否非常笼统。要了解如何使用服务,请参阅this

如果您希望每五分钟唤醒一次服务,则应使用AlarmManager

如果你有一个具体的问题,发布。

+0

我的服务不断消耗更多的内存。在某个时候,它达到了近30 MB。最终服务由ActivityManager关闭,并且发布的语句是:强制停止服务ServiceRecord 为什么服务消耗这么大的内存,但应用程序只运行了100KB左右。 – Naba

相关问题