挑战练习5.5 堵住漏洞
作弊者是注定会失败的。当然,如果他们能一直避开反作弊手段,那就另当别论了。正所谓道高一尺魔高一丈,也许他们能做到。
1.GeoQuiz应用有些大漏洞,可以旋转CheatActivity来清除作弊痕迹。
解决方法,把数据保存在Bundle对象里面。
首先先定义好Key值
然后在onSaveInstanceState方法里面把数据放进Bundle对象里面
最后在onCreate方法里面把数据传回QuizActivity里面
2.作弊返回后,用户可以旋转QuizActivity来清除mIsCheater变量值。
这个跟上面的解决方法一样,首先定义好Key值。
然后一样是在onSaveInstanceState里面传数据
最后在onCreate方法里面拿出来
3.用户可以不断单击NEXT按钮,跳到偷看过答案的问题,从而使作弊记录丢失。
这题的解决方法在第二个BUG的基础上解决。
首先定义好Key值:
然后把原本的原本的mIsCheater变成一个布尔值的数组
在onSaveInstanceState存放数据,这次的方法换成
先把一些报错的地方改成mIsCheater[mCurrentIndex]
最后在onCreate方法里面加一个循环让mIsCheater都为false默认没作弊过,最后再在Bundle对象里面取值出那些题作弊过的数据处理