如何每天上午9点到下午4点运行服务?

时间:2012-11-17 04:46:45

标签: android android-service android-alarms

问题:1 => 我想每天上午9点到下午4点运行服务。我计划两种方法。哪种方法最好?

方法1: 内部服务:(此服务在首次启动应用程序时创建活动时初始化)

if (9 AM <=current time<=4 PM)
{
  fetch data from server. 
}

方法2:

在Activity oncreate中使用警报管理器并根据警报管理器启动服务。然后在第二天醒来并开始服务。

哪种方法最好?

问题:2 =&gt; 如何查找服务是否正在以编程方式运行?

1 个答案:

答案 0 :(得分:1)

编写BroadcastReciever以接收ON_BOOT广播(您需要向清单添加适当的权限和意图过滤器)。 BroadcastReceiver仅用于通过Alarm Manager创建上午9点的通知。计划的警报具有PendingIntent,它将启动该服务。显然,将闹钟设置为每24小时重复一次。

启动时,服务只会正常运行到下午4点,此时它会停止运行。

服务的onStartCommand()方法应该返回相应的标志,以便系统在崩溃或被杀死时重新启动它。

我唯一不知道的是如何在第一次安装时自动启动服务。等待重启设备并不是很实用。当我编写这样的应用程序时,它们通常与具有控制权的活动相结合,以启动和停止服务。