原创 LeakCanary: 查找內存泄露

什麼是內存泄露 一些對象有着有限的生命週期。當這些對象所要做的事情完成了,我們希望他們會被回收掉。但是如果有一系列對這個對象的引用,那麼在我們期待這個對象生命週期結束的時候被收回的時候,它是不會被回收的。它還會佔用內存,這就造成了內存

原创 Android的ViewStub理解與用法

ViewStub是一個不可見的,大小爲0的View。 最大的用途就是實現View的延遲加載,在需要使用的時候再加載view。 <FrameLayout xmlns:android="http://schemas.android.com

原创 FragmentTransaction add和replace方法的區別

在項目中進行Fragment切換的時候,可以用replaced()方法來切換, 也可用用add()。 使用replace()切換的話,Fragment都會重新實例化,重新加載數據, 這樣產生了一些沒必要的消耗。 官方說明:replace

原创 文章標題

Android開發中使用Gradle管理Release/Debug版本中的各種key 我們在開發中,如果使用高德地圖、各種統計等第三方SDK時,一般都有兩個key值,來區分是測試還是正式版本。一般都是寫到AndroidManifest.x

原创 android設置軟件按鈕爲“搜索”,並監聽事件

首先是在xml中editetext裏添加 android:imeOptions="actionSearch",這樣當輸入框中有內容時,軟鍵盤右下角就會變成“搜索”。 在Activity中設置監聽: 方法一:txtSearch.setO

原创 Java 內部類中使用局部變量必須是final

在java中, 方法的內部類可以訪問方法中的局部變量,但必須用final修飾才能訪問。 原因: 1.當方法被調用運行完畢之後,局部變量就已消亡了。但內部類對象可能還存在, 直到沒有被引用時纔會消亡。此時就會出現一種情況,就是內部類要訪問

原创 Android 消息機制---Handler,Looper,MessageQueue,ThreadLocal

Android的消息機制主要是指Handler的運行機制,Handler的運行依賴於Looper(消息選好)和MessageQueue(消息隊列)。 MessageQueue是以隊列的形式,提供插入和刪除,但是它的內部結構不是真正的隊列,

原创 Android SnackBar 使用的問題: Error inflating class android.support.design.widget.Snackbar$SnackbarLayout

不知道大家剛開始用snackbar的時候是否遇到問題,我最開始寫的時候就是在普通的activity中寫了snackbar,結果就報了下面這個錯誤: Error inflating class android.support.design.

原创 Java 創建字符串String的各種方法以及區別

Java中創建字符串的方法: 1.單獨使用“”引號創建的字符串都是常量,編譯期就已經確定存儲到String Pool中; 2.使用new String(“”)創建的對象會存儲在heap中,是運行期新創建的; 3.使用只包含常量的字符串連接

原创 Android LayoutParams 用法

在開發中經常會遇到需要在代碼中動態設置控件高度、位置等,這時就要用到LayoutParams。 沒弄明白的時候,在開發時經常遇到類似錯誤:  java.lang.ClassCastException: android.widget.Li