【发布时间】:2012-11-02 20:22:28
【问题描述】:
我能够更新 sqlite 数据库并通过我的 Activity 中的线程检索数据。但我需要使用服务更新数据库,无论我的应用程序是否运行,它都会每 5 分钟更新一次数据库。所以当我运行应用程序时,我将从当前数据库中获取数据。 我在编写服务以更新数据库时被卡住了。有人可以指导。
【问题讨论】:
标签: android sqlite android-service
我能够更新 sqlite 数据库并通过我的 Activity 中的线程检索数据。但我需要使用服务更新数据库,无论我的应用程序是否运行,它都会每 5 分钟更新一次数据库。所以当我运行应用程序时,我将从当前数据库中获取数据。 我在编写服务以更新数据库时被卡住了。有人可以指导。
【问题讨论】:
标签: android sqlite android-service
在您的服务类上创建一个计时器对象
Timer timer=new Timer();
在创建时
@Override
public void onCreate()
{
super.onCreate();
timer.schedule(new DelayedTask(),300, 300000);// 300000 is 5min
}
类延迟任务
private class DelayedTask extends TimerTask
{
@Override
public void run() {
Log.i(tag,"Timer Task executing");
// code for updating sqlite database
}
}
【讨论】:
ScheduledExecutorService 通常比TimerTask 更受欢迎,这并不能解决Android 可以随时停止服务的问题。如果发生这种情况,计划任务将不会执行。
【讨论】: