最近参与一个社交类的项目,其中负责的模块有登陆注册模块,其中就有类似qq的忘记密码功能。
当时做得时候没有认真使用下qq的忘记密码功能,也没有考虑周全,把它放在眼里,结果被测试MM测出bug
点击记住密码,随便输入一个密码,退出后,下次登陆结果能正常登陆进去,预期结果应该是记住错误密码。
后来查了下原因,一般我们将账号密码都放在xml文件里面存取,每次初始化的时候,都从xml文件读取账号
和密码。由于自己的疏忽登陆成功或者注册成功之后就往里面写数据,没有登陆成功便不往里面写数据,结果
导致了xml文件里面都是正确的账号和密码。
还有一个疏忽就是点击选择记住密码选择框的时候,输入几个密码,退出,然后在登陆,是没有记住刚刚输入
的密码,这个可以在activity退出之后进行相应的写操作,一般在onDestroy函数里面,最好在super.onDestroy
函数条用之前,进行写操作,不然super.onDestroy里面会进行相应的资源释放行为
protected void onDestroy() {
mCalled = true;
// dismiss any dialogs we are managing.
if (mManagedDialogs != null) {
final int numDialogs = mManagedDialogs.size();
for (int i = 0; i < numDialogs; i++) {
final ManagedDialog md = mManagedDialogs.valueAt(i);
if (md.mDialog.isShowing()) {
md.mDialog.dismiss();
}
}
mManagedDialogs = null;
}
// close any cursors we are managing.
synchronized (mManagedCursors) {
int numCursors = mManagedCursors.size();
for (int i = 0; i < numCursors; i++) {
ManagedCursor c = mManagedCursors.get(i);
if (c != null) {
c.mCursor.close();
}
}
mManagedCursors.clear();
}
// Close any open search dialog
if (mSearchManager != null) {
mSearchManager.stopSearch();
}
}