編輯:關於Android編程
Android應用通常由四部分組成,包括:Activity Service BroadcastReceiver ContentProvider;本篇博客將對這四個組件做基本介紹,讓大家對這些組件有一個大致的認識,後面的博客將還會對它們做詳細講解。
Activity Activity是android應用中負責與用戶進行交互的的組件,就是我們android手機呈現界面的組件,你可以把它想象成相框,我們android應用呈現的畫面都是在這個相框裡面,而這個相框的大小就是我們手機屏幕的大小。他負責呈現畫面給我們用戶,並接受我們用戶的點擊 滑動等一系類響應事件。當我們把android應用要呈現的界面(XML文件)設計好後,然而activity只能通過setContentView(View) 來顯示指定的界面,好比,我們把照片拍好後,選擇用哪個相框來裝載這張照片,因此這樣 來為activity綁定顯示界面。 setContentView(View)的使用一般是下面的形式:setContentView(R.layout.main);其中的R.layout.main 是android資源文件中的一個布局文件,相當於是相片。 注意的是,實際上Actvity是Window的容器,Activity包含一個getWindow()方法,這個方法返回Activity所包含的窗口,對於Activity,作為開發者的我們是不用關心它的window對象,如果應用程序不用調用Activity的setContentView()方法來設置該activity的顯示界面,那麼該應用將顯示一個空的窗口。 一個android應用包含很多個Activity,多個activity組成activity棧,存儲方式為先進後出,就像箱子裡面放書一樣,先放進去的書放在最下面,最後放進去的在最上面,所以當前運行的activity位於棧頂。 還有一點就是我們Activity可以設計它自身的風格,就是主題,使用setTheme(int resouceId)就可以指定activity的使用風格,比如有些時候我們的activity不需要使用actionBar 或者以對話框的形式顯示,就可以使用這個方法實現,也可以在AndroidManifest.xml指定activity的顯示風格。 2. Service Service可以說 是和activity一樣重要的,它只是沒有顯示界面而已,service通常運行在後台,因為沒有界面顯示,所以一般不需要與用戶進行交互。 Service組件需要繼承Service基類,Service運行之後擁有自己獨立的生命周期,Service組件通常是用於為其他組件提供後台服務,或者監聽其他組件的運行狀態。其中典型的應用就是 音樂播放器,首頁是activity呈現給用戶的界面,後台播放音樂有Service來完成,Service播放了多少秒然後通知Activity更新界面。Activity的播放暫停按鈕被用戶點擊了,然後通知Service停止或播放音樂。 3. BroadcastReceiver BroadcastReceiver 是 android 應用 中一個非常重要的組件,根據這個名字,大家肯定知道了它其實就是廣播消息接收器,與普通的監聽器不同的是:普通的監聽器監聽的事件源氏程序中的對象,而BroadcastReceiver監聽的事件源是Android應用中的其他組件(activity receiver)。 使用broadcastReceiver組件接受廣播消息比較簡單,我們只需要實現自己的BroadcatReceiver子類,並重寫onRecerver(Context context,Intent intent)方法即可。當其他組件通過sendBroadcast() 或者sentStickyBroadcast() 或者sentOrderBroadcast()方法發送廣播消息時,如果該BroadcastReceiver對這個消息感興趣,通過IntentFilter配置(這是一個過濾器,設置一些條件,如果某個消息和這些條件匹配,則激活BroadcastReceiver),BroadcastReceiver的onReceive()方法就會被激活,這個方法中設置的一些動作就會被執行。就像Service中播放音樂播放完了之後,它就通過sendBroadcast()向activity發送消息,activity收到消息後,就會執行BroadcastReceiver中的onReceive()中的方法,activity就會在界面上做出相應的界面更新。 BroadcastReceiver有兩種注冊方式,只有注冊之後才能啟動,否則是不會有消息發送和接收的。如下兩種方法: (1). 在java代碼中通過Context.registReceiver()方法注冊BroadcastReceiver; (2). 在AndroidManifest.xml中使用
概述:MediaRecorder的狀態圖:代碼:開始錄制音頻:mRecorder = new MediaRecorder(); //Sets
我也來說說android master key 漏洞,官方稱為ANDROID-8219321。 先是在看雪上看到android
本文演示android中圖片加載到內存首先設計界面:代碼如下:<LinearLayout xmlns:android=http://schemas.android.
ListFragment繼承於Fragment。因此它具有Fragment的特性,能夠作為activity中的一部分,目的也是為了使頁面設計更加靈活。相比Fragment