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

Ram*_*sad 5 android android-service android-alarms

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

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

if (9 AM <=current time<=4 PM)
{
  fetch data from server. 
}
Run Code Online (Sandbox Code Playgroud)

方法2:

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

哪种方法最好?

问题:2 =>如何以编程方式运行或不运行服务?

Edw*_*alk 1

编写一个 BroadcastReciever 来接收 ON_BOOT 广播(您需要向清单中添加适当的权限和意图过滤器)。BroadcastReceiver 的存在只是为了通过警报管理器创建上午 9 点的通知。预定的警报有一个 PendingIntent,它将启动该服务。显然,将闹钟设置为每 24 小时重复一次。

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

服务的 onStartCommand() 方法应该返回适​​当的标志,以便系统在崩溃或被终止时重新启动它。

我唯一不明白的是如何在第一次安装时自动启动该服务。等待设备重新启动不太实际。当我编写这样的应用程序时,它们通常与具有启动和停止服务控件的活动结合在一起。