Android 答题倒计时

在开发答题APP时,使用Fragment和CountDownTimer实现倒计时功能时,发现一个问题:当手动滑动到下一题时,前一题的倒计时仍继续。为解决此问题,采用了懒加载策略来控制倒计时的开始和取消。具体实现是定义一个抽象Fragment类,并让答题页面的Activity继承该抽象类,通过抽象类管理数据加载和倒计时的控制。
摘要由CSDN通过智能技术生成

讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧。
碎片(Fragment)+CountDownTimer组成的一个答题,其中遇到的一个问题就是,这个题的倒计时在你手动滑动下一个题的时候却用在了下一个题的时间
解决这个问题运用的就是懒加载来控制倒计时的开始和取消

首先你要先定义一个抽象类继承Fragment 再让你的答题那个碎片的Activity继承

package com.zking.sun.dao;

import android.support.v4.app.Fragment;
import android.util.Log;

/**
 * Created by sun on 2017/1/11.
 */

public abstract class LazyFragment extends Fragment {
   
    protected boolean isVisible;
    /**
     * 在这里实现Fragment数据的缓加载.
     * @param isVisibleToUser
     */
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(getUserVisibleHint()) {
            //可见时调用
            isVisible = true;
            onVisible();
        } else {
            isVisible = false;
            onInvisible();
        }
    }
    protected abstract void onVisible();
    //protected abstract void lazyLoad();
    protected abstract void onInvisible();
}

这是答题的Activity 在这里你要继承刚刚自己写的抽象类
这个类里面包含了数据的加载什么的,有需要的童鞋可以看看,就不删了哈。。。

package com.zking.sun.android_06_project;

import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.zking.sun.dao.LazyFragment;
import com.zking.sun.dao.QusetionDao;
import com.zking.sun.entity.QuestionEntity;

import java.util.List;

import static com.zking.sun.android_06_project.R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值