Android過渡頁驗證用戶是否在其他地方(PC或者平板)進行過密碼修改的問題

在做登錄時,各位是否經常做自動登錄,這是一個非常友好的操作,不過也容易出現問題,就是如果用戶在其他地方進行了密碼修改,而你如果是使用的SharedPreferences來進行用戶信息存值的話,尤其是你這裏沒有進行網絡判斷,直接進行的是看用戶是否有選擇下次自動登錄的話,很容易就會直接跳過驗證,這樣就容易出現漏洞,那麼這裏你就需要去進行網絡判斷

如下圖


進行登錄判斷,確定用戶是否進行過密碼修改,但是這裏有一個很容易進去的坑,是什麼呢,就是onResume方法的使用,我們大部分會在這裏面用handler進行3秒跳轉,如這樣:


這是沒有問題的,但是如果在這裏的話,你會出現一個問題,因爲你需要異步請求網絡參數,那麼你的onResume方法就會在你的網絡請求方法前執行,那麼你就拿不到用戶是否密碼正確或者錯誤。(PS:自己寫的網絡請求類,可能比較渣...)

這樣你的請求就會出現

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yuanda.activity.ydwy_bussiness_college/com.yuanda.activity.ydwy_bussiness_college.activity.GuideActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference 

這個錯誤,比如你在其中去判斷了code的值,那麼久會爲空。

解決的方案也很簡單,把你的handler方法寫出了,註釋掉onResume,然後在你的網絡請求類裏進行跳轉的操作,如果判斷後 用戶密碼有進行修改了,那麼久可以直接跳轉到登錄界面,提示用戶登錄超時就好了。

(PS:小白記坑日記.....)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章