0
我有一個簡單的檢查,以確保相同的片段不會被添加兩次到我的堆棧,假設在菜單項點擊。Proguard和getSimpleName()
public void addFragment(Fragment fragmentToBeAdded){
Fragment topFragment = getCurrentTopFragment();
//getCurrentTopFragment returns top visible fragment using findFragmentById
if(!fragmentToBeAdded.getClass().getSimpleName()
.equals(topFragment.getClass().getSimpleName()){
//add fragmentToBeAdded
}
}
現在,第一個問題當然是第一個問題是這種方法是不正確的?另外,它如何導致一個潛在的bug是當proguard改變爲不同類的「簡單名稱」爲同一個字母時。這個邏輯在發佈版本中也有所折騰。幸運的是,沒有發佈。
如果所有的基本方法都是正確的,事後的選擇是使用getName()而不是getSimpleName()或使用instanceOf檢查。請讓我知道在這裏可以糾正哪些問題。