挑战练习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对象里面取值出那些题作弊过的数据处理

 

原文地址:https://www.cnblogs.com/real1587/p/9879184.html