crash的實踐總結

2021-09-02 14:13:38 字數 1305 閱讀 1038

大部分crash應該都是有空指標異常導致的

對於大部分的簡單的空指標異常,請相信編譯器。android studio中,對於大部分可能出現異常的情況,都會有相應的警告。

請盡量處理編譯器的警告

大部分專案,應該eclipse中開發,可以轉換為android studio專案,或者將**複製到android中。

android studio的警告,錯誤提示比eclipse好的多。

如果在onpostexecute存在重新整理頁面的動作,請先判斷當前的activity是否存在。

在onpostexecute中,最常見的操作應該是toast和closeprocess。

對於這兩者,可以在basefragment和baseactivity提供方法。該方法要先判斷activity是否存在。

關鍵方法1:

public boolean isactivityfinish()
關鍵方法2:

public void closeprocess() 

if (mprogressdialog != null)

}

關鍵方法3:

public void showtoast(int rid) 

toast.maketext(this, rid, toast.length_short).show();

}

有些情況下,初始化過程比較久,為了避免anr,我們需要把初始化過程放在非同步執行緒裡。這就出現了相應問題:

對於變數,初始化後才能賦值。

如果立即使用,初始化過程未結束,就可能出現crash異常

規範方法:

如果可以使用預設值的,請在宣告的同時設定預設值。

使用同步鎖。如果變數未初始化完成,等待一段時間(自定),直至初始化完成。

mvp實現了**和邏輯的分離,但是也會引入記憶體洩露問題。

為了解決記憶體洩露,就需要及時置空view和presenter物件,這樣就很可能出現crash。這一現象大量存在,可以批量處理。

在基類介面中宣告,isviewactive方法,要求所有的presenter實現該方法,可以有效減少這類現象。

作為乙個不斷迭代演進的系統,版本相容無法避免。

檢視官方的變更記錄和說明,提前做好規避

提前使用新版本編譯。檢視是否有異常。

作為rom的應用,很少有個這個問題。但是在demo經常遇到。敏感許可權要使用動態宣告,並且做出處理。

這是乙個低階的常見錯誤:

使用了乙個activity,但是卻沒有在配置檔案中宣告。

其他建議:

crash使用總結

想要知道該down read所處的位置 crash bt 1620 pid 1620 task ffff88812edb4a00 cpu 6 command mount clear soc 0 ffffc900005e3c88 schedule at ffffffff82248906 1 ffffc...

Android常見Crash原因總結(二)

android平台程式崩潰大家都應該遇到過,force close和anr應該是大家遇到較多的。這裡把android平台程式崩潰的各種型別做乙個簡述和原因列舉。1.anr 可見anr 發生場景 應用發生anr。崩潰症狀 系統彈出視窗詢問使用者選擇 force close 或者 wait force ...

Crash 的文明世界

題目描述 給一棵樹,求以每個點為根時下列式子的值。題解 當k 1時這就是乙個經典的換根dp問題。所以這道題還是要用換根dp解決。部分分做法 考慮轉移時是這樣的乙個形式 圖是抄的 用二項式定理展開就可以nk2做了。觀察到結果是乙個xk的形式。然後這個可以用斯特林數代換。我們可以先求出每個點的後面的東西...