引言:android手機操作系統是目前最流行的手機操作系統。本文對android操作系統中的事件處理機制進行了簡單介紹,對基于監聽的事件處理機制做了深入探討,最后結合現實情況,給出了android應用的開發前景。
Android操作系統是一個由谷歌和開放手持設備聯盟共同開發發展的移動設備操作系統,第一個版本發布于2007年11月,至今已經發布了多個更新。隨著移動設備的更新換代及網絡基礎設施的升級完善,手機應用越來越流行。不管是桌面應用程序還是手機應用程序,面對最多的就是用戶,經常需要處理的就是用戶動作,也就是需要為用戶的動作提供響應,這種為用戶動作提供響應的機制就是事件處理。
一、事件處理機制
android系統的事件處理機制有兩種,一種是基于回調機制的,一種是基于監聽接口的,基于回調機制的事件處理是一種在圖形用戶界面的事件處理中應用廣泛的一種機制。Android平臺中每個View都有自己的處理事件的回調方法,開發人員可以通過重寫View中的這些回調方法來實現發生在View上的事件的響應。當某個事件沒有被任何一個View處理時,便會調用Activity中相應的回調方法。
二、監聽模型
在事件監聽的處理模型中,主要涉及如下三類對象:
Event Source(事件源):事件發生的場所,通常就是各個組件、例如按鈕、窗口、菜單等。
Event(事件):事件封裝了界面組件上發生的特定事情(通常就是一次用戶操作)。
Event Listener(事件監聽器):監聽著事件源所發生的事件,并對各種事件做出相應的響應。
內部類可以作為事件監聽器類,如果某個監聽器要被多個GUI界面所共享,這種情況下為了提高復用程度可以使用外部類作為事件監聽器類,還有一種是匿名內部類也可以作為事件監聽器類。
Android中還有一種更簡單的綁定事件監聽器的方式,直接在界面布局中為指定的標簽綁定事件處理方法。
如:android:onClick=\"clickHandler\",這樣就意味著開發者需要在該界面布局對應的Activity中定義一個void clickHandler(View source)方法,該方法將會處理該按鈕上的單擊事件。
以下是一個實例,雖然簡單但完全能夠說明監聽機制的處理流程。:
主界面代碼如下:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
android:orientation=\"vertical\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" android:gravity=\"center_horizontal\" > android:id=\"@+id/text\" android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:editable=\"1\" android:cursorVisible=\"1\" android:textSize=\"12pt\" /> <!-- 定義一個按鈕,該按鈕將作為事件源 -->
響應代碼如下:
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//獲取應用程序中的bn按鈕
Button btn = (Button)findViewById(R.id.btn);
//為按鈕綁定事件監聽器
btn.setOnClickListener(new MyClickListener());
}
//定義一個單擊事件的監聽器
class MyClickListener implements View.OnClickListener {
//實現監聽器類必須實現的方法,該方法將會作為事件處理器
public void onClick(View view) {
EditText txt = (EditText)findViewById(R.id.text);
txt.setText(\" 按鈕被單擊了\");
}
}
}
三、應用的開發方向
Android應用需要運行在手機上,手機與傳統的計算機相比計算能力、存儲能力有限,因此android應用更適合作為客戶端軟件來使用。作為客戶端,手機能充分發揮它的攜帶方便的特點,可以隨時隨地開機運行程序,而且可以隨時訪問網絡,通過網絡與服務器交互。
參考文獻
[1]李楊.基于android的多媒體應用開發與研究[J].計算機與現代化,2011,04.
[2]韓超.基于android經典應用程序開發[M].人力資源出版社,2011.
[3]劉平.android手機訪問服務器的一種數據交互方法[J].西安財經學院,2010.