Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 開發Tips

Android 開發Tips

編輯:關於Android編程

1、模塊間有消息需要傳遞時,使用LocalBroadcastManager替代Listener進行模塊解耦。除了解耦,這樣發送消息和執行消息差一個線程循環,可以減小方法的調用鏈,我這就碰到一次方法調用鏈太長導致StackOverflow的問題。


2、靜態變量不要直接或者間接引用Activity、Service等。這會使用Activity以及它所引用的所有對象無法釋放,然後,用戶操作時間一長,內存就會狂升。


3、Handler機制有一個特點是不會隨著Activity、Service的生命周期結束而結束。也就是說,如果你Post了一個Delay的Runnable,然後在Runnable執行之前退出了Activity,Runnable到時間之後還是要執行的。如果Runnable裡面包含更新View的操作,程序崩潰了。


4、不少人在子線程中更新View時喜歡使用Context.runOnUiThread,這個方法有個缺點,就是一但Context生命周期結束,比如Activity已經銷毀時,一調用就會崩潰。


5、SharedPreferences.Editor.commit這個方法是同步的,一直到把數據同步到Flash上面之後才會返回,由IO操作的不可控,盡量使用apply方法代替。apply只在API Level>=9才會支持,需要做兼容。


6、PackageManager.getInstalledPackages這個方法經常使用,你可能不知道,當獲取的結果數量比較多的時候,在某些機型上面調用它花費的時間可能秒級的,所以盡量在子線程中使用。另外,如果結果太多,超過系統設置的Binder數據最大傳輸量的上限,則會發生TransactionException,如果你使用這個方法獲取機器上的己安裝應用列表,最好做一下預防。


7、如果使用Context.startActivity啟動外部應用,最好做一下異常預防,因為尋找不到對應的應用時,會拋出異常。如果你要打開的是應用內的Activity,不防使用顯式Intent,這樣能提高系統搜索目標Activity的效率。


8、Application的生命周期就是進程的生命周期。只有進程被干掉時,Application才會銷毀。哪怕是沒有Activity、Service在運行,Application也會存在。所以,為了減少內存壓力,盡量不要在Application裡面引用大對象、Context等。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved