Android版DailyInsist(五)——业务逻辑和数据操作SettingFragment & 小结

本文介绍了在Android应用中使用DailyInsist进行业务逻辑处理,详细讲解了设置Fragment(SettingFragment)的实现,包括提醒功能的设定和任务刷新的逻辑。最后进行了整体的小结,总结了关键点和经验。
摘要由CSDN通过智能技术生成
最后一部分是提醒以及每天任务刷新,两者都用到了 AlarmManager 这个系统管理类。

提醒

提醒功能就是一个闹钟的效果,只是这里是启动服务,在服务里发一条notification作为提醒。设置时间时, TimePicker控件会监听该事件,每次时间改变后都会重新设置系统闹钟;如果用户关闭提醒功能的话,这个系统闹钟设置的事件也会取消。修改后的 SettingFragment如下:
<span style="font-size:24px;">@EFragment (R.layout.frag_setting )
public class SettingFragment extends BaseFragment {

      @ColorRes(R.color. setting_text_dark)
      int alarmColor;

      @ColorRes(R.color. main_bg)
      int remindColor;

      @ViewById
     ToggleButton tb_alarm;

      @ViewById
     TimePicker tp_alarm;

      @Pref
     GlobalPrefBean_ globalPrefBean;

      private boolean initViewFinished;

      @AfterViews
      void AfterViews() {
            initViewFinished = true;

            tp_alarm.setIs24HourView( true);
           Util. setNumberPickerTextSizeAndColor( tp_alarm, 25, alarmColor);
           Util. resizeTimerPicker( tp_alarm, 100, LayoutParams.WRAP_CONTENT );

            tp_alarm.setOnTimeChangedListener( new TimePicker.OnTimeChangedListener() {
                 @Override
                 public void onTimeChanged(TimePicker view, int hour, int min) {
                     onTimeSet(hour, min);
                }
           });

           initView();

           initPendingIntent();
     }

      @Override
      public void show() {
            if ( initViewFinished) {
                initView();
           }
     }

      void initView() {

           String alarmTime = globalPrefBean .alarmTime().getOr("" );
            if ( "".equals(alarmTime)) {
                 tp_alarm.setEnabled( false);
                 tb_alarm.setChecked( true);
                 tp_alarm.setCurrentHour(0);
                 tp_alarm.setCurrentMinute(0);
                 tb_alarm.setTextColor( remindColor);
           } else {
                 int hour = Integer.parseInt(alarmTime.subSequence(0, 2).toString());
                 int min = Integer.parseInt(alarmTime.subSequence(2, 4).toString());
                 tp_alarm.setEnabled( true);
                 tb_alarm.setChecked( false);
                 tp_alarm.setCurrentHour(hour);
                 tp_alarm.setCurrentMinute(min);
                 tb_alarm.setTextColor( alarmColor);
                setSystemAlarm(hour, min);
           }

     }

      @Click
      void tb_alarm() {
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值