freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的移動(dòng)oa的開(kāi)發(fā)與設(shè)計(jì)(編輯修改稿)

2025-07-27 11:57 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 臺(tái)運(yùn)行,直到智能手機(jī)關(guān)閉為止。一般情況下服務(wù)是沒(méi)有用戶交互界面的。l 廣播和Intent接收器(Broadcast and Intent Receivers)    廣播和Intent接收器(Broadcast and Intent Receivers)用于處理應(yīng)用程序發(fā)生的服務(wù)請(qǐng)求。廣播接收器用于處理系統(tǒng)級(jí)別的事件消息,這些消息可能是由系統(tǒng)本身發(fā)生的,例如手機(jī)電量不足,消息也可能來(lái)自于系統(tǒng)在中正在運(yùn)行的其他應(yīng)用程序。一個(gè)活動(dòng)或者服務(wù)如果想向其他應(yīng)用程序提供服務(wù),一般通過(guò)Intent接收器來(lái)實(shí)現(xiàn)。Intent接收器是一段可執(zhí)行代碼,當(dāng)其他服務(wù)/活動(dòng)發(fā)出服務(wù)或者數(shù)據(jù)請(qǐng)求是就會(huì)響應(yīng)。如果要發(fā)送請(qǐng)求,客戶端要先創(chuàng)建一個(gè)intent對(duì)象,然后將這個(gè)對(duì)象提交到Android系統(tǒng),由系統(tǒng)來(lái)決定使用哪個(gè)應(yīng)用程序來(lái)處理這個(gè)對(duì)象。這兩種接收器程序和服務(wù)程序一樣,也是沒(méi)有用戶交互界面的。l 內(nèi)容提供器(Content Provider)內(nèi)容提供器(Content Provider)主要功能是向其他的活動(dòng)或者服務(wù)提供數(shù)據(jù)服務(wù)。內(nèi)容提供器通過(guò)使用一種名叫URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)符)的接口向其他應(yīng)用程序提供數(shù)據(jù)服務(wù)。 Android活動(dòng)的生命周期圖22 Android活動(dòng)的生命周期圖下面的對(duì)在活動(dòng)的整個(gè)生命周期中的每個(gè)方法進(jìn)行詳細(xì)的描述。l void onCreate(Bundle savedInstanceState)當(dāng)Activity被第首次加載時(shí)執(zhí)行。我們新啟動(dòng)一個(gè)程序的時(shí)候其主窗體的onCreate事件就會(huì)被執(zhí)行。如果Activity被銷毀后(onDestroy后),再重新加載進(jìn)Task時(shí),其onCreate事件也會(huì)被重新執(zhí)行。注意這里的參數(shù) savedInstanceState(Bundle類型是一個(gè)鍵值對(duì)集合,)是一個(gè)很有用的設(shè)計(jì),由于前面已經(jīng)說(shuō)到的手機(jī)應(yīng)用的特殊性,一個(gè)Activity很可能被強(qiáng)制交換到后臺(tái)(交換到后臺(tái)就是指該窗體不再對(duì)用戶可見(jiàn),但實(shí)際上又還是存在于某個(gè)Task中的,比如一個(gè)新的Activity壓入了當(dāng)前的Task從而“遮蓋”住了當(dāng)前的 Activity,或者用戶按了Home鍵回到桌面,又或者其他重要事件發(fā)生導(dǎo)致新的Activity出現(xiàn)在當(dāng)前Activity之上,比如來(lái)電界面),而如果此后用戶在一段時(shí)間內(nèi)沒(méi)有重新查看該窗體(Android通過(guò)長(zhǎng)按Home鍵可以選擇最近運(yùn)行的6個(gè)程序,或者用戶直接再次點(diǎn)擊程序的運(yùn)行圖標(biāo),如果窗體所在的Task和進(jìn)程沒(méi)有被系統(tǒng)銷毀,則不用重新加載Process, Task和Task中的Activity,直接重新顯示Task頂部的Activity,這就稱之為重新查看某個(gè)程序的窗體),該窗體連同其所在的Task和Process則可能已經(jīng)被系統(tǒng)自動(dòng)銷毀了,此時(shí)如果再次查看該窗體,則要重新執(zhí)行 onCreate事件初始化窗體。而這個(gè)時(shí)候我們可能希望用戶繼續(xù)上次打開(kāi)該窗體時(shí)的操作狀態(tài)進(jìn)行操作,而不是一切從頭開(kāi)始。例如用戶在編輯短信時(shí)突然來(lái)電,接完電話后用戶又去做了一些其他的事情,比如保存來(lái)電號(hào)碼到聯(lián)系人,而沒(méi)有立即回到短信編輯界面,導(dǎo)致了短信編輯界面被銷毀,當(dāng)用戶重新進(jìn)入短信程序時(shí)他可能希望繼續(xù)上次的編輯。這種情況我們就可以覆寫(xiě)Activity的void onSaveInstanceState(Bundle outState)事件,通過(guò)向outState中寫(xiě)入一些我們需要在窗體銷毀前保存的狀態(tài)或信息,這樣在窗體重新執(zhí)行onCreate的時(shí)候,則會(huì)通過(guò) savedInstanceState將之前保存的信息傳遞進(jìn)來(lái),此時(shí)我們就可以有選擇的利用這些信息來(lái)初始化窗體,而不是一切從頭開(kāi)始。  l void onStart()onCreate事件之后執(zhí)行?;蛘弋?dāng)前窗體被交換到后臺(tái)后,在用戶重新查看窗體前已經(jīng)過(guò)去了一段時(shí)間,窗體已經(jīng)執(zhí)行了onStop事件,但是窗體和其所在進(jìn)程并沒(méi)有被銷毀,用戶再次重新查看窗體時(shí)會(huì)執(zhí)行onRestart事件,之后會(huì)跳過(guò)onCreate事件,直接執(zhí)行窗體的onStart事件。l void onResume()onStart事件之后執(zhí)行?;蛘弋?dāng)前窗體被交換到后臺(tái)后,在用戶重新查看窗體時(shí),窗體還沒(méi)有被銷毀,也沒(méi)有執(zhí)行過(guò)onStop事件(窗體還繼續(xù)存在于Task中),則會(huì)跳過(guò)窗體的onCreate和onStart事件,直接執(zhí)行onResume事件。l void onPause()窗體被交換到后臺(tái)時(shí)執(zhí)行。l void onStop()onPause事件之后執(zhí)行。如果一段時(shí)間內(nèi)用戶還沒(méi)有重新查看該窗體,則該窗體的onStop事件將會(huì)被執(zhí)行;或者用戶直接按了Back鍵,將該窗體從當(dāng)前Task中移除,也會(huì)執(zhí)行該窗體的onStop事件。l void onRestart()onStop事件執(zhí)行后,如果窗體和其所在的進(jìn)程沒(méi)有被系統(tǒng)銷毀,此時(shí)用戶又重新查看該窗體,則會(huì)執(zhí)行窗體的onRestart事件,onRestart事件后會(huì)跳過(guò)窗體的onCreate事件直接執(zhí)行onStart事件。l void onDestroy()Activity被銷毀的時(shí)候執(zhí)行。在窗體的onStop事件之后,如果沒(méi)有再次查看該窗體,Activity則會(huì)被銷毀。 Android服務(wù)的生命周期Android Service生命周期與Activity生命周期是相似的,但是也存在一些細(xì)節(jié)上也存在著重要的不同:圖23是Android服務(wù)(Service)的生命周期示意圖。圖23 Android服務(wù)的生命周期圖l onCreate和onStart是不同的 (Intent)方法我們可以啟動(dòng)一個(gè)服務(wù)。如果這個(gè)服務(wù)還沒(méi)有運(yùn)行,Android將啟動(dòng)它并且在onCreate方法之后調(diào)用它的onStart方法。如果這個(gè)服務(wù)已經(jīng)在運(yùn)行,那么它的onStart方法將被新的Intent再次調(diào)用。所以對(duì)于單個(gè)運(yùn)行的Service它的onStart方法被反復(fù)調(diào)用是完全可能的并且是很正常的。l onResume、onPause以及onStop是不需要的 回調(diào)一個(gè)服務(wù)通常是沒(méi)有用戶界面的,所以我們也就不需要onPause、onResume或者onStop方法了。無(wú)論何時(shí)一個(gè)運(yùn)行中的Service它總是在后臺(tái)運(yùn)行。l onBind 如果一個(gè)客戶端需要持久的連接到一個(gè)服務(wù)。如果這個(gè)服務(wù)沒(méi)有運(yùn)行方法將通過(guò)調(diào)用onCreate方法去創(chuàng)建這個(gè)服務(wù)但并不調(diào)用onStart方法來(lái)啟動(dòng)它。相反,onBind方法將被客戶端的Intent調(diào)用,并且它返回一個(gè)IBind對(duì)象以便客戶端稍后可以調(diào)用這個(gè)服務(wù)。同一服務(wù)被客戶端同時(shí)啟動(dòng)和綁定是很正常的。l onDestroy與Activity一樣,當(dāng)一個(gè)服務(wù)被結(jié)束是onDestroy方法將會(huì)被調(diào)用。當(dāng)沒(méi)有客戶端啟動(dòng)或綁定到一個(gè)服務(wù)時(shí)Android將終結(jié)這個(gè)服務(wù)。與很多Activity時(shí)的情況一樣,當(dāng)內(nèi)存很低的時(shí)候Android也可能會(huì)終結(jié)一個(gè)服務(wù)。如果這種情況發(fā)生,Android也可能在內(nèi)存夠用的時(shí)候嘗試啟動(dòng)被終止的服務(wù),所以你的服務(wù)必須為重啟持久保存信息,并且最好在onStart方法內(nèi)來(lái)做。 課程相關(guān)的Android技術(shù)介紹 Android用戶界面簡(jiǎn)介一、菜單 選項(xiàng)菜單(OptionsMenu): 在Activity中重寫(xiě)onCreateOptionsMenu()和onOptionsItemSelected()方法。 上下文菜單(ContextMenu): onCreateContextMenu()和onContextItemSelected()方法,在onCreate()方法中將ContextMenu和某個(gè)view綁定,調(diào)用registerForContextMenu(view)。 子菜單:類似選項(xiàng)菜單的創(chuàng)建,在onCreateOptionsMenu()()方法實(shí)現(xiàn)子菜單的添加,事件處理和選項(xiàng)菜單相同。二、對(duì)話框: AlertDialog:警告對(duì)話框,可以帶幾個(gè)選擇按鈕,也可以帶列表選項(xiàng)。 Toast略 布局:布局是可以嵌套使用。 (1)常用屬性介紹 (2)LinearLayout。線性布局可以水平或者垂直擺放組件 (3)TableLayout:表格布局,在TableLayou中有3個(gè)與其他布局不相同屬性,分別是:android:shrinkColumns=0收縮指定的列,當(dāng)按鈕標(biāo)題過(guò)長(zhǎng),可能會(huì)擠壓其他組件,指定該屬性后其他組件不會(huì)被擠壓android:stretchColumns=3指定列充滿剩余寬度,android:collapseColumns=2隱藏指定的列。 (4)FrameLayout:框架布局,從屏幕左上角開(kāi)始擺放組件 (5)RelativeLayout:相對(duì)布局,在相對(duì)布局中的組件使用android:layout_tiLeftOf、android:layout_toRightOf、android:layout_below、android:layout_above來(lái)確定組件的位置 (6)AbsoluteLayout:絕對(duì)布局,通過(guò)android:layout_x、android:layout_y坐標(biāo)來(lái)定義組件的位置菜單(Menu+MenuGroup+MenuItem)?。?)OptionMenu (2)ContextMenu?。?)SubMenu警告對(duì)話框(ALertDialog++對(duì)話框選項(xiàng))常用組件:?。?)按鈕:Button?。?)圖片按鈕ImageButton (3)文本視圖(TextView)?。?)文本框(Text) (5)單選按鈕(RadioGroup+RadioButton)?。?)復(fù)選框(CheckBox) (7)列表框(Spinner+Adapter)?。?)開(kāi)關(guān)按鈕(ToggleButton)?。?) 自動(dòng)完成文本框(AutoCompleteTextView)?。?0)下拉列表(Spanner)?。?1)日期選擇器與日期選擇器對(duì)話框(DatePicker與DatePickerDialog)?。?2)時(shí)間選擇器與時(shí)間選擇器對(duì)話框TimePicker與TimePickerDialog (13)進(jìn)度條對(duì)話框與進(jìn)度條(ProgressDialog與ProgressBar)?。?4)列表選項(xiàng)(ListView):三種實(shí)現(xiàn)方式:  A.繼承Activity,使用ArrayAdapter或者自定義Adapter繼承自BaseAdapter  ?。?5)網(wǎng)格視圖(GridVIew):?。?6)選項(xiàng)卡?。?7)MapView:編程過(guò)程: 1)獲得MD5認(rèn)證指紋 2)登錄google賬戶,輸入 3)修改清單文件,在applicatioin內(nèi)添加uselibrary android:name=”” 4)添加權(quán)限: usespermission android:name=/usespermission usespermission android:name=/usespermission usespermission android:name=/usespermission usespermission android:name=/5)編碼實(shí)現(xiàn)注意:清單文件中必須有上述配置,否則報(bào)異常 XML解析技術(shù)簡(jiǎn)介 Android與服務(wù)器端的數(shù)據(jù)交互技術(shù)簡(jiǎn)介 我們?cè)赑C機(jī)器java客戶端中,需要一些庫(kù),比如XFire,Axis2,CXF等等來(lái)支持訪問(wèn)WebService,但是這些庫(kù)并不適合我們資源有限的android手機(jī)客戶端,做過(guò)JAVA ME的人都知道有KSOAP這個(gè)第三方的類庫(kù),可以幫助我們獲取服務(wù)器端webService調(diào)用。首先下載KSOAP::并把下載的KSOAP包放在android項(xiàng)目的lib目錄下:右鍵build pathconfigure build path選擇Libraries,如圖27所示:圖27   在android模擬器下調(diào)用KSOAP包圖以下分為七個(gè)步驟來(lái)調(diào)用WebService方法:  第一步:實(shí)例化SoapObject 對(duì)象,指定webService的命名空間(從相關(guān)WSDL文檔中可以查看命名空間),以及調(diào)用方法名稱。如://命名空間private static final String serviceNameSpace=。//調(diào)用方法(獲得支持的城市)private static final String getSupportCity=getSupportCity。//實(shí)例化SoapObject對(duì)象SoapObject request=new SoapObject(serviceNameSpace, getSupportCity)。 第二步:假設(shè)方法有參數(shù)的話,設(shè)置調(diào)用方法參數(shù):(參數(shù)名稱,參數(shù)值)。  第三步:設(shè)置SOAP請(qǐng)求信息(參數(shù)部分為SOAP協(xié)議版本號(hào),與你要調(diào)用的webService中版本號(hào)一致)://獲得序列化的EnvelopeSoapSerializationEnvelope envelope=new SoapSerializationEnvelope()。=request。  第四步:注冊(cè)Envelope:?(new MarshalBase64()).register(envelope)。  第五步:構(gòu)建傳輸對(duì)象,并指明WSDL文檔URL://請(qǐng)求URLprivate static final String serviceURL=。//Android傳輸對(duì)象AndroidHttp
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1