編輯:關於Android編程
今天要介紹的是一個Android中使用得比較多的android 事件總線 EventBus模式的一個框架Otto。
Otto 官網:http://square.github.io/otto/
一、Android Studio中配置Otto (Eclipse中直接下載jar包導入)
跟之前介紹的其他的框架一樣,它只需要簡單地在build.gradle中配置下面一行紅色字體即可
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
//otto 所需要依賴的包
compile 'com.squareup:otto:+'
}
二、Otto事件總線框架淺析
1、為什麼要用Otto框架?
Otto框架的主要功能是幫助我們來降低多個類之間的耦合度的(解耦)。
譬如:一個類A和另一個類B之間,如果A要操作B中的某個方法。
傳統的方法:A直接調用B對象的該方法(耦合在一起)
事件總線機制:A不需要調用B類的方法,而僅僅需要產生並發出 一個“事件通知”, 如果B訂閱了該“事件”
那麼它將會接受到這個事件,做出相應的操作。這樣就被解耦了。
2. Otto框架使用(結合代碼介紹)
Otto框架其實相對之前的幾個Android開源框架來說,更容易理解。
它主要運用到一個類: Bus類(用於注冊類,注銷類,發布事件)
兩個注解: @Subscribe (訂閱) @Produce (生產) 【都是針對“事件”的注解】
為了方便,我這邊沒有使用兩個類來做這個Demo, 不過如果大家要試的話也可以,不過記住一點,無論是<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD63orK81d/A4CAgu7nKxyC2qdTE1d/A4KOsILa80OjSqtPDQnVzvfjQ0MDgtcTXorLho6y7udPQ16LP+qGjt/HU8r2rw7u3qLG7QnVzyrax8KOs1eLR+b7Nzt63qMn60KfBy6GjPC9wPjxwPs/Cw+a1xERlbW+jrCC99s6qwcvIw7TzvNLWqrXAobDKwrz+obGxu7L6yfrBy9auuvOjrHBvc3Sz9sC0o6zL+dPQtqnUxMHLuMPKwrz+tcTA4La8u+G907W9uMPKwrz+o6y908rctcTPyLrzy7PQ8qOssrvTyc7Sw8e/2NbGo6E8L3A+PHA+PC9wPjxwcmUgY2xhc3M9"brush:java;">public class MyActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); findViewById(R.id.button_change).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { BusProvider.getBusInstance().post(new DataChangedEvent("this is changed String"));//發布事件 } }); } @Override protected void onResume() { super.onResume(); BusProvider.getBusInstance().register(this);//注冊 } @Override protected void onPause() { super.onPause(); BusProvider.getBusInstance().unregister(this);//注銷 } @Subscribe //訂閱事件DataChangedEvent public void sayGoodOnEvent(DataChangedEvent event){ Log.e("event", "good"); } @Subscribe //訂閱事件 public void sayBadOnEvent(DataChangedEvent event){ Log.e("event", "bad"); } @Produce //產生事件 public DataChangedEvent produceDataChangedEvent(){ return new DataChangedEvent("this is changed String"); } }
1.Android WebView 一些基本概念 在 Android 手機中內置了一款高性能 webkit 內核浏覽器,在 SDK 中封裝為一個叫做 WebVie
Android提供了實現按照秒計時的API,今天就是用這個API實現簡單的倒計時。來個布局:<?xml version=1.0 encoding=utf-8
一、簡介 地圖控件自v2.3.5版本起,支持多實例,即開發者可以在一個頁面中建立多個地圖對象,並且針對這些對象分別操作且不會產生相互干擾。 文件名:D
SharedPreferences是Android中最容易理解的數據存儲技術,實際上SharedPreferences處理的就是一個key-value(鍵值對)。Shar