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

正文內(nèi)容

第6章后臺服務(wù)(完整版)

2025-04-01 04:25上一頁面

下一頁面
  

【正文】 return null。 6 (this, (1) 調(diào)用 onCreate()方法 , 初始化服務(wù) , 7 ).show()。 22 } 23 })。 1 public class StartServiceModeActivity extends Activity { 2 /** Called when the activity is first created. */ 3 Override 4 public void onCreate(Bundle savedInstanceState) { 5 (savedInstanceState)。通過 Activity中的啟動Service按鈕使用 StartService()方法進(jìn)行啟動服務(wù),服務(wù)的功能是產(chǎn)生一個隨機(jī)整數(shù)( 0~100之間)并通過Toast方式進(jìn)行顯示。 服務(wù) Service的兩種使用方式 ? 第二種是在相關(guān) Activity中使用 bindService()方法來綁定服務(wù) , 調(diào)用者和綁定者綁在一起 , 調(diào)用者一旦退出服務(wù)也就終止了 , 執(zhí) 行 順 序 為onCreate()→onBind()→onUnbind()→onDestroy 。 // 開始服務(wù),替代了原有 onStart()方法 3. public void onDestroy()。沒有用戶界面,意味著降低了系統(tǒng)資源的消耗,而且Service具有比 Activity更高的優(yōu)先級,因此在系統(tǒng)資源緊張的情況下, Service不會輕易被 Android系統(tǒng)終止,即使Service被系統(tǒng)主動終止,在系統(tǒng)資源恢復(fù)后, Service也將自動恢復(fù)運(yùn)行狀態(tài),因此可以認(rèn)為 Service是在系統(tǒng)中永久運(yùn)行的組件。第六章 后臺服務(wù) Service ? 項(xiàng)目任務(wù) : ? 通過學(xué)習(xí) Android相關(guān)歷史及開發(fā)環(huán)境的搭建,完成第一個簡單應(yīng)用程序的設(shè)計(jì)與開發(fā),并理解Android項(xiàng)目中各個文件及目錄的功能。這一點(diǎn)從另外一個方面提醒開發(fā)者,在程序中要正確把握好自己開發(fā)的后臺服務(wù) Service生命周期。 // 銷毀服務(wù) ? 一個服務(wù)只會創(chuàng)建一次,銷毀一次,但可以開始多次,因此, onCreate()和 onDestroy()方法只會被調(diào)用一次,而onStartmend()方法可以被調(diào)用多次。 ? 調(diào)用 ()啟動方式時 , 客戶端可以綁定到正在運(yùn)行的 Service上 , 如果此時 Service沒有運(yùn)行 , 系統(tǒng)會調(diào)用 onCreate()方法來創(chuàng)建 Service, Service的onCreate方法只會被調(diào)用一次 。通過停止 Service按鈕使用StopService()方法停止該后臺服務(wù)。 6 setContentView()。 24 } 25 } 服務(wù) Service的兩種使用方式 ? 本段代碼首先表明繼承了 Activity類 , 并重寫了 onCreate( ) 方法 , 在此實(shí)現(xiàn)了全部功能 。 8 } 9 10 Override // 每次 StartService( ) 調(diào)用時都會調(diào)用本方法 , 所以具體功能代碼一定在這里實(shí)現(xiàn) 11 public int onStartCommand(Intent intent, int flags, int startId) { 12 (this, (2) 調(diào)用 onStartCommand()方法 , 實(shí)現(xiàn)服務(wù)的具體功能 , 13 ).show()。 30 } 31 } 服務(wù) Service的兩種使用方式 ? 本段代碼首先表明繼承了 Service類 , 并重寫了 3個方法 ,在此實(shí)現(xiàn)了全部功能 , 在 onCreate( ) 、 onDestroy( )方法中 , 僅僅插入了一個 Toast顯示的語句 , 幫助讀者理解服務(wù)的生命周期函數(shù)的調(diào)用過程 , 重點(diǎn)實(shí)現(xiàn)本服務(wù)的功能代碼在第 11~18行代碼 onStartCommand( ) 方法中 。 1 activity 2 android:label=string/app_name 3 android:name= 4 intentfilter 5 action android:name= / 6 category android:name= / 7 /intentfilter 8 /activity 9 10 service 11 android:name= 12 /service 服務(wù) Service的兩種使用方式 ? Activity和 Service組件必須在 之后 , 才能正常運(yùn)行 。 ? “ 取消綁定 ” 按鈕可以解除與 MathService的綁定關(guān)系 ,取消綁定后 , 無法通過 “ 加法運(yùn)算 ” 按鈕獲取加法運(yùn)算結(jié)果 。 9 10 labelView = (TextView)findViewById()。 25 // 先判斷是否服務(wù)綁定狀態(tài) , 如在綁定狀態(tài)就用 unbingService( ) 方法取消綁定 26 (new (){ 27 Override 28 public void onClick(View v) { 服務(wù) Service的兩種使用方式 29 if(isBound){ 30 isBound = false。 //通過調(diào)用 Service中的公有方法 add( ) , 完成 Activity中的兩個數(shù)進(jìn)行加法運(yùn)算并進(jìn)行顯示 服務(wù) Service的兩種使用方式 46 long result = (a, b)。 ? 第 19~21行代碼 , 調(diào)用者通過 bindService()函數(shù)實(shí)現(xiàn)綁定服務(wù)并設(shè)置狀態(tài) , 對這個函數(shù)做重點(diǎn)說明:在第 1個參數(shù)中將 Intent傳遞給bindService() 函數(shù) , 聲明需要啟動的 Service ;第 3 個參數(shù) , 就自動建立Service;同時也告知 Android系統(tǒng) , 這個 Service的重要程度與調(diào)用者相同 , 除非考慮終止調(diào)用者 , 否則不要關(guān)閉這個 Service。 9 10 labelView = (TextView)findViewById()。 24 } 25 服務(wù) Service的兩種使用方式 26 Override 27 public int onStartCommand(Intent intent, int flags, int startId) { 28 (this, (2) 調(diào)用 onStartCommand方法 , 29 ).show()。 51 } 52 public long Add(long a, long b){// 本公用方法是本服務(wù)的核心內(nèi)容 53 return a+b。 但是在操作一些耗時操作的情形時 , 比如 I/O讀寫的大文件讀寫 , 數(shù)據(jù)庫操作以及網(wǎng)絡(luò)下載需要很長時間 , 為了不阻塞用戶界面 , 出現(xiàn) ANR( Application Not Responding) 的響應(yīng)提示窗口 , 如圖所示 , 用戶可以選擇 “ 等待 ” 而讓程序繼續(xù)運(yùn)行 , 也可以選擇 “ 強(qiáng)制關(guān)閉 ” 。 這樣本小節(jié)涉及兩個問題 ,如何創(chuàng)建一個新線程 Thread? 如何在子線程和主線程之間通過 Handler進(jìn)行數(shù)據(jù)交互 ? 在服務(wù)中使用新線程更新 UI ? 創(chuàng)建和使用線程 Thread ? 線程 Thread,有時被稱為輕量級進(jìn)程 (Lightweight Process, LWP),是程序執(zhí)行流的最小單元,線程是程序中一個單一的順序控制流程。 2 workThread = new Thread(null,backgroudWork,WorkThread)。 在服務(wù)中使用新線程更新 UI 1 public void run() { 2 try { 3 while(true){ 4 //過程代碼 5 (1000)。 此外 , Looper負(fù)責(zé)從其內(nèi)部的 MessageQueue中拿出一個個的 Message給 Handler進(jìn)行處理 。// 產(chǎn)生一個新的 Handle對象 2 //通過系統(tǒng)的 post()方法將 Runnable對象從后臺線程發(fā)送到 GUI線程的消息隊(duì)列中 3 public static void UpdateGUI(double refreshDouble){ 4 (RefreshLable)。 ? 在本實(shí)例中 , Activity文件 , 大家要特別注意的是其中的封裝 Handler的界面更新函數(shù) , 具體過程已經(jīng)在前面進(jìn)行了說明 。 9 //通過系統(tǒng)的 post()方法將 Runnable對象從后臺線程發(fā)送到 GUI線程的消息隊(duì)列中 10 (RefreshLable)。 28 29 final Intent serviceIntent = new Intent(this, )。 7 (this, (1) 調(diào)用 onCreate()方法進(jìn)行初始化 , 8 ).show()。// 子線程停止 28 } 在服務(wù)中使用新線程更新 UI 29 30 Override 31 public IBinder onBind(Intent intent) { 32 return null。 ? AIDL ( Android Interface Definition Language ) 是Android系統(tǒng)自定義的接口描述語言 , 可以簡化進(jìn)程間數(shù)據(jù)格式轉(zhuǎn)換和數(shù)據(jù)交換的代碼 , 通過定義 Service內(nèi)部的公共方法 , 允許調(diào)用者和 Service在不同進(jìn)程間相互傳遞數(shù)據(jù) 。 4 (data2,someData)。一般通過兩種方法對 Broadcast Receiver進(jìn)行注冊 。 廣播 Broadcast及接收 ? 實(shí)例分析 ? 通過一個實(shí)例 BroadcastReceiverDemo來幫助大家對廣播機(jī)制的內(nèi)容進(jìn)行理解 , 本例程的功能是幫助大家學(xué)習(xí)BroadcastReceiver 和 Android 中的廣播機(jī)制 , 以及Notification提示功能 。 廣播 Broadcast及接收 ? 下面 , 我們通過 , 對啟動界面的代碼進(jìn)行分析 , 這里要重點(diǎn)注意如何對 Intent進(jìn)行廣播 。 14 (0, ITEM0, 0, 顯示 Notification)。 27 } 廣播 Broadcast及接收 28 return true。 廣播 Broadcast及接收 ? 先看第一個廣播接收器 AndroidReceiver1的代碼: 1 public class AndroidReceiver1 extends BroadcastReceiver { 2 Context context。 18 (NOTIFICATION_ID, notification)。 12 } 13 } 廣播 Broadcast及接收 ? 當(dāng)點(diǎn)擊 Menu的第二個選項(xiàng)后 , 項(xiàng)目的第二個廣播會被這一個廣播接收器所匹配 , 執(zhí)行本代碼中的 onReceive( )方法 , 第 9~12行就是 DeleteNotification(), 它是負(fù)責(zé)將剛才第一個廣播接收器中生成的 Notification從狀態(tài)欄中刪除, 需要注意的是 , 每一個 Notification都有唯一的 id進(jìn)行標(biāo)示和區(qū)分 , 本程序中的 NOTIFICATION_ID是自主對應(yīng)的值 12345。 這主要涉及三個主要類: ? Notification:設(shè)置通知的各個屬性; NotificationManager:負(fù)責(zé)發(fā)送通知和取消通知; :Notification負(fù)責(zé)創(chuàng)建 Notification對象 , 能非常方便的控制所有的 Flags, 同時構(gòu)建 Notification的顯示風(fēng)格 。 ShowNotification( ) 負(fù)責(zé)顯示一個 Notification。 4 Override 5 public void onReceive(Context context, Intent intent) { 6 = context。 32 sendBroadcast(intent)。 16 (ITEM1)。 4 publi
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1