我有一个Android应用程序,我试图根据服务器的时钟时间播放视频(不是Android设备的时钟时间可能会有所不同)
08:00:00 - 08:04:59 - > VIDEO_URL_1
08:05:00 - 08:09:59 - > video_url_2
08:10:00 - 08:14:59 - > video_url_3
因此,当用户打开应用程序时,如果服务器的时钟时间属于上述类别,则播放相应的视频,否则将根据服务器的时钟显示剩余秒数的计时器时间。
如果Android应用已经打开,那么当服务器的时钟时间属于以上任何类别时,它应自动开始播放视频。
持续ping服务器的时钟时间不是一个好选择。那么我们如何才能实现上述功能呢?
答案 0 :(得分:2)
我认为Alarm Manager是您的解决方案。
流程如下:
设置闹钟管理器示例以触发广播接收器:
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
Intent alarmIntent = new Intent(context, MyBroadCastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
// add here your calculate minutes or seconds or hours
calendar.add(Calendar.MINUTE, 45);
if (alarmManager != null) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
然后让你的广播接收器处理任何其他动作:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Do your magic, could be play the video or show a notification saying the video is ready to play
}
}
如果您想了解有关Android中警报的更多信息,请查看以下链接:
https://developer.android.com/training/scheduling/alarms.html