原创 EventBus之EventBusBuilder

Configuration EventBusBuilder類配置EventBus的各個方面。例如,下面是如何構建一個EventBus,在發佈的事件沒有訂閱者時保持安靜: EventBus eventBus = EventBus.buil

原创 EventBus的特性及簡單的使用介紹

EventBus是一個用於Android和Java的開源庫,使用發佈者/訂閱者模式(publisher/subscriber pattern)實現鬆散(loose)耦合(coupling)。EventBus使中央通信僅用幾行代碼就能解耦類

原创 EventBus之交付線程(Delivery Threads)

Delivery Threads (ThreadMode) EventBus可以爲您處理線程:事件(events)可以在不同於發佈線程(the posting thread)的線程中發佈(be posted)。一個常見的用例是處理UI更改

原创 Android事件總線框架Otto源碼解析四(使用Produce註解的過程)

       說明:本文的解析過程並不只是簡單的講解框架中各個方法的調用邏輯、程序的執行過程,而是依賴於示例代碼,結合了具體的的示例程序的執行流程,有助於更好的理解。 有關Otto的使用方法參見另一篇文章: Android事件總線框架Ot

原创 Android事件總線框架Otto源碼解析三(unregister過程)

 說明:本文的解析過程並不只是簡單的講解框架中各個方法的調用邏輯、程序的執行過程,而是依賴於示例代碼,結合了具體的的示例程序的執行流程,有助於更好的理解。 有關Otto的使用方法參見另一篇文章: Android事件總線框架Otto使用介紹

原创 Android使用Notification通知欄功能的封裝

在Android應用開發中我們經常會使用到通知欄的功能,安卓的通知欄有多種類型樣式,包括基本類型、帶進度條的類型、大圖標類型、大段文本類型等,在Android 8.0 (API level 26) 中使用通知欄的代碼示例: // Cre

原创 Android事件總線框架Otto使用介紹

 Otto框架是square公司爲Android出的一款事件總線框架,設計用於解耦應用程序的不同部分,同時仍然允許它們有效地通信。 https://github.com/square/otto 以下簡單介紹一下Otto框架的使用方式: 創

原创 Android事件總線框架Otto源碼解析二(post事件過程)

 說明:本文的解析過程並不只是簡單的講解框架中各個方法的調用邏輯、程序的執行過程,而是依賴於示例代碼,結合了具體的的示例程序的執行流程,有助於更好的理解。 public class PostActivity extends AppCom

原创 Android事件總線框架Otto源碼解析一(Bus的構造過程及使用註解@Subscribe的註冊過程)

 說明:本文的解析過程並不只是簡單的講解框架中各個方法的調用邏輯、程序的執行過程,而是依賴於示例代碼,結合了具體的的示例程序的執行流程,有助於更好的理解。 package com.example.myotto; import andr

原创 商城類APP的商品分類頁面實現,使用RecyclerView結合GridLayout減少嵌套

 少囉嗦,先上圖:              這樣的界面實現起來還是比較簡單的,具體的實現業務邏輯,可根據自己項目的需求而定。        在本例的實現中,左邊和右邊分別是兩個RecyclerView,左邊的RecyclerView

原创 應用程序中將用戶默認的設置參數存入本地數據庫的一種處理方式,以ObjectBox爲例

       一般情況下,應用中都會有些默認的配置信息,我們也會把用戶的設置信息,比如某些開關按鈕的狀態等這些輕量級的數據,存入SharedPreferences文件中,本文嘗試換一種實現的方式,將這些默認數據存入本地數據庫中,同時希望在

原创 Android應用開發中關於SQLite數據庫升級、降級及數據遷移的代碼示例

 SQLite數據庫升級、降級及數據遷移的代碼示例: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import andro

原创 遞歸求n的階乘——Java語言描述

public class RecursiveAlgorithm { StringBuffer buffer = new StringBuffer(); public int factorial(int n) { if (n <=

原创 利用斷點續傳原理下載文件的過程當中由於Range參數錯誤導致的下載問題

項目中實現的過程是,要下載的文件大小的最大值是從後臺獲取,如果手機端下載一部分後暫停,再重新下載,會傳遞斷點續傳下載時需要的最大值參數和已下載的文件大小的參數,但是有部分比較大的文件,Gson解析後臺的文件大小字段爲double類型後是用

原创 Java併發常用類CyclicBarrier、CountDownLatch應用場景示例

 CyclicBarrier 類的應用示例:如開啓5個線程,在每個線程內部打印輸出"Hello World",5個線程先全部輸出"Hello",之後再輸出"World"。 import java.util.concurrent.Brok