[英]compare two time in fragment is not working
这是我的工作,它不起作用...我从时间选择器的共享首选项中获取时间,这一次是用户在运行时名称中选择的时间...在片段中,我需要将系统当前时间与第一次进行比较发送通知。 但如果条件在比较期间不起作用。 当我删除如果条件,然后通知工作良好的问题是比较时间。 它不会显示任何错误。
公开Long firstTimeinLong;
@SuppressLint("NewApi")
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getActivity().setTitle("Blood Pressure");
View view = inflater.inflate(R.layout.fragment_blood_pressure, container, false);
Date myDate = new Date(); // Default Value.
Long dateTimeinLong = myDate.getTime();
SharedPreferences prefs = getActivity().getSharedPreferences("MY_PREFS_BPTIME_CHECKS", MODE_PRIVATE);
firstTimeinLong = prefs.getLong( "millis1",0 ); // firstTime1
System.out.println("System Time : " + dateTimeinLong);
System.out.println("First Time : " + firstTimeinLong);
if (dateTimeinLong == firstTimeinLong.longValue() )// i dont know why this is not working but i do not get any error
{
LGSnackbarManager.show(INFO, "first time is here in the loop");
Intent notifyIntent = new Intent(getActivity().getApplicationContext(), NotificationBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 12345678, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getActivity().getApplicationContext().getSystemService(getActivity().getApplicationContext().ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),1000, pendingIntent);
}
return view;
}
谢谢大家,恭喜我,我真的很喜欢你们所有人都能对我的问题做出快速的响应...我用这四个链接解决了我的问题,这四个链接在我的情况下对我有帮助,我不需要与系统当前时间进行比较。
4- 在Android中比较日期的最佳方法 3- 如何通过后台服务在android中的特定时间每天重复通知 2- 从日期获取小时,分钟和秒钟? 1- 如何在SharedPreferences中保存和检索Date
首先我用
Calendar cal1 = Calendar.getInstance();
并像这样在cal1中设置用户定义的时间prefs.getLong
值
cal1.setTimeInMillis(prefs.getLong(key"millis1", defValue 0));
然后我像这样得到(我设置为保存的时间)cal1
Date firstTimeinLong = cal1.getTime();
现在我就这样分散时间
int minutes1 = cal1.get(Calendar.MINUTE);
int hour1 = cal1.get(Calendar.HOUR_OF_DAY);
int second1 = cal1.get(Calendar.SECOND);
我使用另一个日历对象进行通知并像这样设置MINUTE,HOUR_OF_DAY和SECOND
Calendar cal2forNotify = Calendar.getInstance();
cal2forNotify. calendarforNotification.set(Calendar.HOUR_OF_DAY, hour1);
cal2forNotify.set(Calendar.MINUTE, minutes1);
cal2forNotify.set(Calendar.SECOND, 0);
最后的更改是在如下的alarmManger.setRepeating行中
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendarforNotification.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.