安卓第九章后臺(tái)處理_第1頁(yè)
安卓第九章后臺(tái)處理_第2頁(yè)
安卓第九章后臺(tái)處理_第3頁(yè)
安卓第九章后臺(tái)處理_第4頁(yè)
安卓第九章后臺(tái)處理_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第九章Android后臺(tái)處理Android

應(yīng)用開(kāi)發(fā)教程第九章Android后臺(tái)處理消息提示1BroadcastReceiver組件2Android后臺(tái)線程3Service組件4應(yīng)用開(kāi)發(fā)步驟及案例5Android系統(tǒng)提供一套友好的消息提示機(jī)制,不會(huì)打斷用戶當(dāng)前的操作。常用的方式Toast一種快速的即時(shí)消息。消息內(nèi)容簡(jiǎn)短。懸浮于應(yīng)用程序的最上方。不獲得焦點(diǎn)。Notification消息內(nèi)容顯示于手機(jī)的狀態(tài)欄中。按住狀態(tài)欄往下拉,可以查看系統(tǒng)的提示消息。消息提示第九章Android后臺(tái)處理Toast對(duì)象()Toast類在android.widget包下。Toast對(duì)象的創(chuàng)建通過(guò)makeText()方法實(shí)現(xiàn)。Toast對(duì)象通過(guò)show()方法顯示在屏幕上。Toast對(duì)象一般用于某項(xiàng)操作執(zhí)行后是否成功的消息提示。實(shí)例1:在ZSWB_Diary2中,添加Toast對(duì)象:當(dāng)刪除一條日志操作時(shí)給出提示。項(xiàng)目名為:ZSWB_Diary3。消息提示第九章Android后臺(tái)處理創(chuàng)建Notification對(duì)象Notification類在android.app包下。Notification無(wú)須Activity,將消息內(nèi)容顯示在手機(jī)狀態(tài)條中。創(chuàng)建Notification對(duì)象:方法一:Notificationmynotification=newNotification(icon,ticker,when);其中:icon是顯示在狀態(tài)欄中的圖標(biāo),一般通過(guò)資源id表示。ticker是消息的文本內(nèi)容。when是系統(tǒng)時(shí)間,一般可用System.currentTimeMillis()獲得。方法二:Notificationmynotification=newNotification();mynotification.icon=R.drawable.header;mynotification.tickerText=getResources().getString(R.string.notification);…消息提示第九章Android后臺(tái)處理Notification包含如下功能:創(chuàng)建新的狀態(tài)欄圖標(biāo);在擴(kuò)展的狀態(tài)條窗口顯示額外的信息(也可以啟動(dòng)另一個(gè)Intent);其它提示形式:閃爍/LED,讓手機(jī)震動(dòng),發(fā)出聲音(鈴聲,媒體庫(kù)歌曲)等。設(shè)置Notification對(duì)象缺省表現(xiàn)形式:Notification.DEFAULT_VIBRATE:Notification顯示時(shí)伴隨振動(dòng)。Notification.DEFAULT_SOUND:Notification顯示時(shí)伴隨音樂(lè)。Notification.DEFAULT_ALL:Notification顯示時(shí)伴隨振動(dòng)和音樂(lè)。例:mynotification.defaults=Notification.DEFAULT_SOUND;模擬器不支持震動(dòng)。消息提示第九章Android后臺(tái)處理由Notification啟動(dòng)另一活動(dòng)設(shè)置點(diǎn)擊狀態(tài)欄中的Notification時(shí)發(fā)送的Intent對(duì)象。例如,當(dāng)點(diǎn)擊狀態(tài)欄的Notification時(shí)啟動(dòng)另一個(gè)活動(dòng),該活動(dòng)名為NotifiedActivity。代碼如下:Intenti=newIntent(this,NotifiedActivity.class);PendingIntentpi=PendingIntent.getActivity(this,0,i,0);PendingIntent:PendingIntent就是一個(gè)Intent的描述,相當(dāng)于對(duì)intent執(zhí)行了包裝,我們不一定要馬上執(zhí)行它,我們將其包裝后,傳遞給其他activity或application。點(diǎn)擊狀態(tài)欄中的Notification啟動(dòng)另一個(gè)活動(dòng)。代碼如下:myNotification.setLatestEventInfo(this,"示例","點(diǎn)擊查看",pi);setLatestEventInfo:設(shè)置顯示在拉伸狀態(tài)欄中的Notification對(duì)象的屬性,單擊后將發(fā)送PendingIntent對(duì)象。。消息提示第九章Android后臺(tái)處理NotificationManager所有的Notification都由NotificationManager來(lái)管理,通過(guò)NotificationManager顯示出來(lái)。例:NotificationManagernotificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);notificationManager.notify(0,myNotification); //發(fā)送NotificationNotificationManager常用方法消息提示第九章Android后臺(tái)處理方法描述cancel(intid)取消以前顯示的一個(gè)NotificationcancelAll()取消以前顯示的一個(gè)所有NotificationgetSystemService(NOTIFICATION_SERVICE)初始化一個(gè)NotificationManager對(duì)象notify(intid,Notificationnotification)把Notification持久地發(fā)送到狀態(tài)條上使用Notification和NotificationManager的基本步驟:⑴獲取NotificationManager對(duì)象。⑵創(chuàng)建一個(gè)Notification對(duì)象。⑶設(shè)置Notification的各個(gè)屬性:設(shè)置在狀態(tài)條(StatusBar)顯示的通知文本提示設(shè)置發(fā)出提示音設(shè)置手機(jī)振動(dòng)設(shè)置LED燈閃爍設(shè)置對(duì)通知的單擊事件處理⑷發(fā)送通知。消息提示第九章Android后臺(tái)處理BroadcastReceiverBroadcastReceiver是對(duì)廣播消息進(jìn)行過(guò)濾并響應(yīng)的控件。BroadcastReceiver類位于android.content包下。實(shí)現(xiàn)自己的BroadcastReceiver必須要注冊(cè)。注冊(cè)方式:動(dòng)態(tài)注冊(cè):在Java代碼中注冊(cè)。(靈活)靜態(tài)注冊(cè):在AndroidManifest.xml中聲明。(常用)開(kāi)發(fā)與BroadcastReceiver相關(guān)的程序,主要的工作是對(duì)onReceive()方法進(jìn)行重寫(xiě)。注意:在onReceive()中執(zhí)行的代碼耗時(shí)不要超過(guò)5秒。BroadcastReceiver組件第九章Android后臺(tái)處理BroadcastReceiver組件發(fā)送廣播的方式用sendBroadcast和sendStickyBroadcast發(fā)送廣播:所有滿足條件的BroadcastReceiver都會(huì)執(zhí)行其onReceive()方法來(lái)處理響應(yīng),是對(duì)廣播消息進(jìn)行過(guò)濾并響應(yīng)的控件。當(dāng)有多個(gè)滿足條件的BroadcastReceiver時(shí),不能保證其onReceive()方法的執(zhí)行順序。用sendOrderBroadcast發(fā)送:通過(guò)sendOrderBroadcast發(fā)送的Intent,會(huì)根據(jù)BroadcastReceiver注冊(cè)時(shí)IntentFilter設(shè)置的優(yōu)先級(jí)順序來(lái)執(zhí)行onReceive()方法。對(duì)于相同優(yōu)先級(jí)的BroadcastReceiver,不能保證其onReceive()方法的執(zhí)行順序。sendStickyBroadcast與其它發(fā)送方式的不同之處:Intent在發(fā)送之后一直存在,并且在以后調(diào)用registerReceive注冊(cè)相匹配的Receive時(shí)會(huì)把這個(gè)Intent直接返回給新注冊(cè)的Receive。第九章Android后臺(tái)處理BroadcastReceiver組件接收廣播服務(wù)的過(guò)程開(kāi)發(fā)BroadcastReveiver類的子類,在其中重載onReceive()方法;在AndroidManifest.xml中注冊(cè)BroadcastReceiver對(duì)象;動(dòng)態(tài)注冊(cè):通過(guò)調(diào)用registerReceiver()方法來(lái)注冊(cè)。代碼如:MyReceiverreceiver=newMyReceiver();//創(chuàng)建相關(guān)對(duì)象IntentFilterfilter=newIntentFilter();filter.addAction(DATE_CHANGED);registerReceiver(receiver,filter);//動(dòng)態(tài)注冊(cè)BroadcastReceiver靜態(tài)注冊(cè):在AndroidManifest.xml中添加聲明:<receiverandroid:name=".MyReceiver"> <intent-filter> <actionandroid:name="ent.action.DATE_CHANGED"/> <categoryandroid:name="ent.category.HOME"/> </intent-filter></receiver>第九章Android后臺(tái)處理BroadcastReceiver組件接收廣播服務(wù)的過(guò)程兩種注冊(cè)方式比較:動(dòng)態(tài)注冊(cè)方式特點(diǎn):在代碼中進(jìn)行注冊(cè)后,當(dāng)應(yīng)用程序關(guān)閉后,就不再進(jìn)行監(jiān)聽(tīng)。靜態(tài)注冊(cè)方式的特點(diǎn):在應(yīng)用程序安裝之后,無(wú)論該應(yīng)用程序是否處于活動(dòng)狀態(tài),BroadcastReceiver始終處于被監(jiān)聽(tīng)狀態(tài)。在AndroidManifest.xml中為應(yīng)用程序添加適當(dāng)?shù)臋?quán)限;<uses-permissionandroid:name=“android.permission.WRITE_SETTINGS”/>等待接收廣播。我們注冊(cè)的BroadcastReceiver并非一直在后臺(tái)運(yùn)行,一旦當(dāng)事件或相關(guān)的Intent傳來(lái),就會(huì)被系統(tǒng)調(diào)用,處理onReceive()方法里的響應(yīng)事件。第九章Android后臺(tái)處理BroadcastReceiver組件實(shí)例2:通過(guò)一個(gè)按鈕來(lái)發(fā)出一個(gè)廣播信息,并將它顯示在狀態(tài)欄中。可以單擊一個(gè)按鈕,清除狀態(tài)欄中的通知信息。BroadcastReceiver組件沒(méi)有提供可視化的界面來(lái)顯示廣播信息,但可以使用Notification來(lái)實(shí)現(xiàn)廣播信息的顯示,提示音,閃爍和振動(dòng)等消息提示。本例使用狀態(tài)欄顯示廣播信息。項(xiàng)目名:BroadcastRec_Demo定義兩個(gè)類:BroadcastRec_DemoActivity.java,是一個(gè)Activity類,在其中構(gòu)建案例中需要廣播的Intent,然后在按鈕的onClick()方法中使用sendBroadcast()方法發(fā)送出去,并且在該類的onResume()方法中注冊(cè)廣播接收器。MyReceiver.java,是一個(gè)繼承BroadcastReceiver的子類,在該子類的onReceive()方法中將傳入的廣播Intent中的信息發(fā)送給一個(gè)通知對(duì)象。第九章Android后臺(tái)處理Android后臺(tái)線程線程是比進(jìn)程更小的執(zhí)行單位。主線程當(dāng)一個(gè)程序首次啟動(dòng)時(shí),Android會(huì)啟動(dòng)一個(gè)LINUX進(jìn)程和一個(gè)主線程。主線程負(fù)責(zé)處理與UI相關(guān)的事件,并把相關(guān)的事件分發(fā)到對(duì)應(yīng)的組件進(jìn)行處理。所以主線程通常又被叫做UI線程。AndroidUI操作必須在UI線程中執(zhí)行。Android的UI是單線程(Single-threaded)的。子線程非UI線程即為子線程,子線程一般都是后臺(tái)線程。運(yùn)用子線程的場(chǎng)合:進(jìn)行數(shù)據(jù)、系統(tǒng)等其他非UI的操作。把所有運(yùn)行慢的、耗時(shí)的操作移出主線程,放到子線程中。第九章Android后臺(tái)處理Android后臺(tái)線程Handler消息傳遞機(jī)制Android的子線程不能直接操作UI。如果需要可以嘗試使用Handler消息傳遞機(jī)制。Handler消息傳遞機(jī)制:一個(gè)Handler對(duì)應(yīng)一個(gè)Activity。自定義的后臺(tái)線程可與Handler通信,Handler將與UI線程一起工作。Handler類位于android.os包下。Handler的常用方法3GMS–WirelessLife方法返回類型描述handlerMessage(Messagemsg)void子類對(duì)象通過(guò)該方法接收消息sendEmptyMessage(intwhat)boolean發(fā)送一個(gè)只含有what值的消息sendMessage(Messagemsg)boolean發(fā)送消息到HandlerhasMessages(intwhat)boolean監(jiān)測(cè)消息隊(duì)列中是否還有what值的消息Post(Runnabler)boolean將一個(gè)線程添加到消息隊(duì)列中第九章Android后臺(tái)處理Android后臺(tái)線程Handler的使用開(kāi)發(fā)Handler類的步驟:⑴在Activity或Activity的Widget中開(kāi)發(fā)Handler類的對(duì)象,重載handlerMessage方法。⑵在新啟動(dòng)的線程中調(diào)用sendEmptyMessage或sendMessage方法向Handler發(fā)送消息。⑶Handler類的對(duì)象用handlerMessage方法接收消息,然后根據(jù)消息執(zhí)行相應(yīng)的操作。第九章Android后臺(tái)處理Android后臺(tái)線程實(shí)例3:使用Handler機(jī)制以幻燈片的形式顯示IT界的名人照片,每張圖片停留3秒鐘。項(xiàng)目名:ThreadDemo定義兩個(gè)類:Activity類:ThreadDemoActivity.java繼承Thread的子類:MyThread.java第九章Android后臺(tái)處理三秒鐘之后Android后臺(tái)線程AsyncTaskAsyncTask是抽象類,位于android.os包下。AsyncTask是一種簡(jiǎn)單的實(shí)現(xiàn)后臺(tái)運(yùn)行事務(wù)的方式。利用AsyncTask我們不需要自己來(lái)寫(xiě)后臺(tái)線程,無(wú)需終結(jié)后臺(tái)線程。有效地避免了使用Handler帶來(lái)的麻煩。AsyncTask的特點(diǎn)是任務(wù)在主線程之外運(yùn)行,而通過(guò)回調(diào)方法在主線程中執(zhí)行。子類必須實(shí)現(xiàn)抽象方法doInBackground(Params…p),這個(gè)方法是必須要重寫(xiě)的,用來(lái)在后臺(tái)線程中處理一些耗費(fèi)時(shí)間的事情。

AsyncTask的執(zhí)行分為若干步驟,每一步都對(duì)應(yīng)一個(gè)回調(diào)方法,這些方法需要重寫(xiě)。注意:在任務(wù)的執(zhí)行過(guò)程中,這些方法不由應(yīng)用程序調(diào)用,而是被自動(dòng)調(diào)用的。第九章Android后臺(tái)處理Android后臺(tái)線程AsyncTask的常用方法AsyncTask定義了三種范式類型,被用于一個(gè)異步任務(wù)。Params:當(dāng)執(zhí)行時(shí),參數(shù)類型發(fā)送到任務(wù),比如HTTP請(qǐng)求的URL。Progress:在后臺(tái)計(jì)算期間,后臺(tái)任務(wù)執(zhí)行的百分比。Result:后臺(tái)計(jì)算的結(jié)果類型,比如String。AsyncTask常用的需要重載的方法:方法描述

execute(Params...params)執(zhí)行一個(gè)異步任務(wù),需要我們?cè)诖a中調(diào)用此方法,觸發(fā)異步任務(wù)的執(zhí)行onPreExecute()當(dāng)任務(wù)執(zhí)行之前開(kāi)始調(diào)用此方法,可以在這里顯示進(jìn)度對(duì)話框doInBackground(Params…)此方法在后臺(tái)線程執(zhí)行,完成任務(wù)的主要工作,通常需要較長(zhǎng)的時(shí)間。在執(zhí)行過(guò)程中可以調(diào)用publicProgress(Progress…)來(lái)更新任務(wù)的進(jìn)度onProgressUpdate(Progress…)此方法在主線程執(zhí)行,用于顯示任務(wù)執(zhí)行的進(jìn)度onPostExecute(Result)此方法在主線程執(zhí)行,任務(wù)執(zhí)行的結(jié)果作為此方法的參數(shù)返回第九章Android后臺(tái)處理Android后臺(tái)線程AsyncTask使用步驟一個(gè)AsyncTask運(yùn)行的過(guò)程中,經(jīng)歷了4個(gè)步驟:⑴onPreExecute()

在execute調(diào)用后立即在ui線程中執(zhí)行。這步通常被用于設(shè)置任務(wù)。⑵doInBackground(Params...)

當(dāng)onPreExecute()執(zhí)行完成后,立即在后臺(tái)線程中運(yùn)行。這步被用于執(zhí)行較長(zhǎng)時(shí)間的后臺(tái)計(jì)算。異步任務(wù)的參數(shù)也被傳到這步。計(jì)算的結(jié)果必須在這步返回,將傳回到上一步。在執(zhí)行過(guò)程中可以調(diào)用publishProgress(Progress...)來(lái)更新任務(wù)的進(jìn)度。⑶onProgressUpdate(Progress...)

在調(diào)用publishProgress后,在UI線程中運(yùn)行。執(zhí)行的時(shí)機(jī)是不確定的。當(dāng)后臺(tái)計(jì)算還在進(jìn)行時(shí),這個(gè)方法用于在用戶界面顯示進(jìn)度。⑷onPostExecute(Result)當(dāng)后臺(tái)計(jì)算結(jié)束時(shí),調(diào)用UI線程。后臺(tái)計(jì)算結(jié)果作為一個(gè)參數(shù)傳遞到這步。第九章Android后臺(tái)處理Android后臺(tái)線程AsyncTask使用規(guī)則必須遵守一些線程規(guī)則,AsyncTask類才能正確的工作。AsyncTask任務(wù)實(shí)例必須創(chuàng)建在UI線程中。execute(Params...)必須在UI線程上調(diào)用。不要手動(dòng)調(diào)用下列方法:onPreExecute()onPostExecute(Result)doInBackground(Params...)onProgressUpdate(Progress...)每個(gè)AsyncTask只能有1個(gè)實(shí)例被執(zhí)行,同時(shí)運(yùn)行2個(gè)以上的AsyncTask,將會(huì)拋出異常。第九章Android后臺(tái)處理Android后臺(tái)線程實(shí)例4:使用AsyncTask來(lái)完成進(jìn)度對(duì)話框的進(jìn)度更新操作。由于使用AsyncTask,任務(wù)在后臺(tái)運(yùn)行,在前臺(tái)界面是看不到后臺(tái)執(zhí)行過(guò)程的,本例在代碼中增加了輸出Log的操作,便于大家看到其執(zhí)行過(guò)程。項(xiàng)目名:AsyncTask_PgDialog在Eclipse的LogCat窗口中可以看到后臺(tái)操作過(guò)程的日志記錄信息:第九章Android后臺(tái)處理ServiceService是后臺(tái)運(yùn)行的,沒(méi)有用戶交互界面的“服務(wù)”。如:播放音樂(lè);檢測(cè)SD卡上文件的變化;后臺(tái)數(shù)據(jù)計(jì)算,如記錄用戶的地理信息位置的改變;發(fā)出Notification。Service一般由Activity啟動(dòng),但不依賴于Activity。也可以由其他的Service或者BroadcastReceiver啟動(dòng)。Service的生命周期Service的生命周期方法比Activity要少一些,只在:onCreate()onStart()onDestroy()Service組件第九章Android后臺(tái)處理Service的啟動(dòng)方式:通過(guò)startService啟動(dòng)啟動(dòng)時(shí),依次調(diào)用onCreate->onStart方法。注意:如果Service已經(jīng)啟動(dòng)了,當(dāng)我們?cè)俅螁?dòng)Service時(shí),不會(huì)再執(zhí)行onCreate()方法,而是直接執(zhí)行onStart方法。Android2.0以后用mand替換了之前的onStart,啟動(dòng)時(shí)會(huì)自動(dòng)調(diào)用該Service的mand方法。停止時(shí)直接進(jìn)入onDestroy。無(wú)論之前調(diào)用了幾次startService,一次stopService調(diào)用,將結(jié)束該Service。通過(guò)bindService啟動(dòng)啟動(dòng)時(shí)只運(yùn)行onCreate方法。停止時(shí),依次調(diào)用onUnbind->onDestroy方法。Service組件第九章Android后臺(tái)處理Service的進(jìn)程優(yōu)先級(jí)如果service正在調(diào)用onCreate()、onStart()或onDestory()方法,那么用于當(dāng)前service的進(jìn)程則變?yōu)榍芭_(tái)進(jìn)程以避免被killed。如果service已經(jīng)被啟動(dòng),擁有它的進(jìn)程僅比可見(jiàn)的進(jìn)程低,而比不可見(jiàn)的進(jìn)程重要,這就意味著service一般不會(huì)被killed.如果客戶端已經(jīng)連接到service,那么擁有它的進(jìn)程則擁有最高的優(yōu)先級(jí),可以認(rèn)為該service是可見(jiàn)的。如果service可以使用startForeground(int,Notification)方法來(lái)將service設(shè)置為前臺(tái)狀態(tài),那么系統(tǒng)就認(rèn)為是對(duì)用戶可見(jiàn)的,并不會(huì)在內(nèi)存不足時(shí)killed。Service組件第九章Android后臺(tái)處理創(chuàng)建Service子類需要重寫(xiě)的方法onBind(Intentintent)該方法是必須實(shí)現(xiàn)的方法,返回一個(gè)綁定的接口給Service。onCreate()該方法是當(dāng)Service第一次被創(chuàng)建時(shí),由系統(tǒng)調(diào)用。onStart(Intentintent,intstartId)該方法是當(dāng)startService()方法啟動(dòng)Service時(shí),該方法被調(diào)用。onDestroy()該方法是當(dāng)Service不再使用時(shí),由系統(tǒng)調(diào)用。注冊(cè)Service組件在應(yīng)用程序中使用Service,需要在AndroiManifest.xml文件中顯式地注冊(cè)<service>標(biāo)簽。Service組件第九章Android后臺(tái)處理啟動(dòng)和停止Service啟動(dòng)Service顯式啟動(dòng)。通過(guò)類名稱,例如:IntentmyIntent=newIntent(this,MyService.class);myIntent.putExtra(“TOPPING”,”Margherita”);startService(myIntent);隱式啟動(dòng)。通過(guò)IntentFilter,例如:startService(newIntent(this,MyService.class));停止Service使用stopSelf()方法使用stopService()方法,例如:stopService(newIntent(this,MyService.class));Service組件第九章Android后臺(tái)處理實(shí)例5:Service與BroadcastReceiver聯(lián)合應(yīng)用功能:通過(guò)按鈕啟動(dòng)Service,Service運(yùn)行兩分鐘后停止,或通過(guò)點(diǎn)擊“停止Service”按鈕中止Service;動(dòng)態(tài)注冊(cè)一個(gè)BroadcastReceiver;通過(guò)BroadcastReceiver廣播Service運(yùn)行的時(shí)間。項(xiàng)目:項(xiàng)目名:Service_BroadcastDemo資源:需要預(yù)設(shè)按鈕字符串代碼:Service_Broad_Demo.javaMyService.java注意:在AndroidManifest.xml中需要注冊(cè)Service組件: <serviceandroid:name=“.MyService”/>第九章Android后臺(tái)處理Service組件開(kāi)發(fā)Android應(yīng)用項(xiàng)目,首先需要整理以下內(nèi)容:項(xiàng)目有哪些功能;需要哪些用戶界面;各界面之間跳轉(zhuǎn)的流程;需要的數(shù)據(jù)及其數(shù)據(jù)的來(lái)源和格式;是否需要服務(wù)端的支持;是否需要本地?cái)?shù)據(jù)庫(kù)的支持;是否需要特殊的權(quán)限;是否需要后臺(tái)進(jìn)程等。在進(jìn)入具體的編碼前,需要形成相關(guān)開(kāi)發(fā)文檔,描述上面涉及的問(wèn)題。第九章Android后臺(tái)處理應(yīng)用開(kāi)發(fā)步驟及案例開(kāi)發(fā)步驟⑴用戶界面設(shè)計(jì)按照項(xiàng)目規(guī)劃文檔,使用XML文件描述出Android的用戶界面:布局模式、視圖組件、填充的數(shù)據(jù)等。⑵準(zhǔn)備需要的資源⑶數(shù)據(jù)操作和存儲(chǔ)數(shù)據(jù)來(lái)源(SharedPreferences、數(shù)據(jù)庫(kù)、ContentProvider、網(wǎng)絡(luò)等)及存儲(chǔ)開(kāi)發(fā)。⑷多頁(yè)面的跳轉(zhuǎn)實(shí)現(xiàn)實(shí)現(xiàn)各個(gè)界面直接的調(diào)用和跳轉(zhuǎn)流程。⑸增加Service實(shí)現(xiàn)項(xiàng)目需要的Service。第九章Android后臺(tái)處理應(yīng)用開(kāi)發(fā)步驟及案例開(kāi)發(fā)步驟⑹完善應(yīng)用細(xì)節(jié)從網(wǎng)絡(luò)上獲取數(shù)據(jù),在manifest.xml中需要添加相關(guān)的uses-permission;老版本更新,在manifest.xml中需要更新versionCode,versionName;…⑺應(yīng)用測(cè)試使用模擬器和Eclipse中的DDMS功能。⑻打包發(fā)布第九章Android后臺(tái)處理應(yīng)用開(kāi)發(fā)步驟及案例音樂(lè)播放器實(shí)例實(shí)例6:設(shè)計(jì)一個(gè)單機(jī)版的音樂(lè)播放器。功能:對(duì)指定的音樂(lè)進(jìn)行播放、暫停、停止控制;顯示歌曲的相關(guān)信息;按下menu鍵時(shí),彈出“退出”選項(xiàng)菜單,退出時(shí)需要有退出確認(rèn)對(duì)話框。界面設(shè)計(jì):只使用一個(gè)用戶界面main.xml;為配合歌曲內(nèi)容,設(shè)置背景;在界面的頂端放置按鈕和歌曲主要信息左邊并排放置兩按鈕,“播放”和“暫停”設(shè)置為一個(gè)按鈕的兩種狀態(tài);右邊縱向放置歌曲名稱、歌唱人、作詞作曲人信息。在界面下

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論