




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第九章Android后臺處理Android
應(yīng)用開發(fā)教程第九章Android后臺處理消息提示1BroadcastReceiver組件2Android后臺線程3Service組件4應(yīng)用開發(fā)步驟及案例5Android系統(tǒng)提供一套友好的消息提示機(jī)制,不會打斷用戶當(dāng)前的操作。常用的方式Toast一種快速的即時消息。消息內(nèi)容簡短。懸浮于應(yīng)用程序的最上方。不獲得焦點。Notification消息內(nèi)容顯示于手機(jī)的狀態(tài)欄中。按住狀態(tài)欄往下拉,可以查看系統(tǒng)的提示消息。消息提示第九章Android后臺處理Toast對象()Toast類在android.widget包下。Toast對象的創(chuàng)建通過makeText()方法實現(xiàn)。Toast對象通過show()方法顯示在屏幕上。Toast對象一般用于某項操作執(zhí)行后是否成功的消息提示。實例1:在ZSWB_Diary2中,添加Toast對象:當(dāng)刪除一條日志操作時給出提示。項目名為:ZSWB_Diary3。消息提示第九章Android后臺處理創(chuàng)建Notification對象Notification類在android.app包下。Notification無須Activity,將消息內(nèi)容顯示在手機(jī)狀態(tài)條中。創(chuàng)建Notification對象:方法一:Notificationmynotification=newNotification(icon,ticker,when);其中:icon是顯示在狀態(tài)欄中的圖標(biāo),一般通過資源id表示。ticker是消息的文本內(nèi)容。when是系統(tǒng)時間,一般可用System.currentTimeMillis()獲得。方法二:Notificationmynotification=newNotification();mynotification.icon=R.drawable.header;mynotification.tickerText=getResources().getString(R.string.notification);…消息提示第九章Android后臺處理Notification包含如下功能:創(chuàng)建新的狀態(tài)欄圖標(biāo);在擴(kuò)展的狀態(tài)條窗口顯示額外的信息(也可以啟動另一個Intent);其它提示形式:閃爍/LED,讓手機(jī)震動,發(fā)出聲音(鈴聲,媒體庫歌曲)等。設(shè)置Notification對象缺省表現(xiàn)形式:Notification.DEFAULT_VIBRATE:Notification顯示時伴隨振動。Notification.DEFAULT_SOUND:Notification顯示時伴隨音樂。Notification.DEFAULT_ALL:Notification顯示時伴隨振動和音樂。例:mynotification.defaults=Notification.DEFAULT_SOUND;模擬器不支持震動。消息提示第九章Android后臺處理由Notification啟動另一活動設(shè)置點擊狀態(tài)欄中的Notification時發(fā)送的Intent對象。例如,當(dāng)點擊狀態(tài)欄的Notification時啟動另一個活動,該活動名為NotifiedActivity。代碼如下:Intenti=newIntent(this,NotifiedActivity.class);PendingIntentpi=PendingIntent.getActivity(this,0,i,0);PendingIntent:PendingIntent就是一個Intent的描述,相當(dāng)于對intent執(zhí)行了包裝,我們不一定要馬上執(zhí)行它,我們將其包裝后,傳遞給其他activity或application。點擊狀態(tài)欄中的Notification啟動另一個活動。代碼如下:myNotification.setLatestEventInfo(this,"示例","點擊查看",pi);setLatestEventInfo:設(shè)置顯示在拉伸狀態(tài)欄中的Notification對象的屬性,單擊后將發(fā)送PendingIntent對象。。消息提示第九章Android后臺處理NotificationManager所有的Notification都由NotificationManager來管理,通過NotificationManager顯示出來。例:NotificationManagernotificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);notificationManager.notify(0,myNotification); //發(fā)送NotificationNotificationManager常用方法消息提示第九章Android后臺處理方法描述cancel(intid)取消以前顯示的一個NotificationcancelAll()取消以前顯示的一個所有NotificationgetSystemService(NOTIFICATION_SERVICE)初始化一個NotificationManager對象notify(intid,Notificationnotification)把Notification持久地發(fā)送到狀態(tài)條上使用Notification和NotificationManager的基本步驟:⑴獲取NotificationManager對象。⑵創(chuàng)建一個Notification對象。⑶設(shè)置Notification的各個屬性:設(shè)置在狀態(tài)條(StatusBar)顯示的通知文本提示設(shè)置發(fā)出提示音設(shè)置手機(jī)振動設(shè)置LED燈閃爍設(shè)置對通知的單擊事件處理⑷發(fā)送通知。消息提示第九章Android后臺處理BroadcastReceiverBroadcastReceiver是對廣播消息進(jìn)行過濾并響應(yīng)的控件。BroadcastReceiver類位于android.content包下。實現(xiàn)自己的BroadcastReceiver必須要注冊。注冊方式:動態(tài)注冊:在Java代碼中注冊。(靈活)靜態(tài)注冊:在AndroidManifest.xml中聲明。(常用)開發(fā)與BroadcastReceiver相關(guān)的程序,主要的工作是對onReceive()方法進(jìn)行重寫。注意:在onReceive()中執(zhí)行的代碼耗時不要超過5秒。BroadcastReceiver組件第九章Android后臺處理BroadcastReceiver組件發(fā)送廣播的方式用sendBroadcast和sendStickyBroadcast發(fā)送廣播:所有滿足條件的BroadcastReceiver都會執(zhí)行其onReceive()方法來處理響應(yīng),是對廣播消息進(jìn)行過濾并響應(yīng)的控件。當(dāng)有多個滿足條件的BroadcastReceiver時,不能保證其onReceive()方法的執(zhí)行順序。用sendOrderBroadcast發(fā)送:通過sendOrderBroadcast發(fā)送的Intent,會根據(jù)BroadcastReceiver注冊時IntentFilter設(shè)置的優(yōu)先級順序來執(zhí)行onReceive()方法。對于相同優(yōu)先級的BroadcastReceiver,不能保證其onReceive()方法的執(zhí)行順序。sendStickyBroadcast與其它發(fā)送方式的不同之處:Intent在發(fā)送之后一直存在,并且在以后調(diào)用registerReceive注冊相匹配的Receive時會把這個Intent直接返回給新注冊的Receive。第九章Android后臺處理BroadcastReceiver組件接收廣播服務(wù)的過程開發(fā)BroadcastReveiver類的子類,在其中重載onReceive()方法;在AndroidManifest.xml中注冊BroadcastReceiver對象;動態(tài)注冊:通過調(diào)用registerReceiver()方法來注冊。代碼如:MyReceiverreceiver=newMyReceiver();//創(chuàng)建相關(guān)對象IntentFilterfilter=newIntentFilter();filter.addAction(DATE_CHANGED);registerReceiver(receiver,filter);//動態(tài)注冊BroadcastReceiver靜態(tài)注冊:在AndroidManifest.xml中添加聲明:<receiverandroid:name=".MyReceiver"> <intent-filter> <actionandroid:name="ent.action.DATE_CHANGED"/> <categoryandroid:name="ent.category.HOME"/> </intent-filter></receiver>第九章Android后臺處理BroadcastReceiver組件接收廣播服務(wù)的過程兩種注冊方式比較:動態(tài)注冊方式特點:在代碼中進(jìn)行注冊后,當(dāng)應(yīng)用程序關(guān)閉后,就不再進(jìn)行監(jiān)聽。靜態(tài)注冊方式的特點:在應(yīng)用程序安裝之后,無論該應(yīng)用程序是否處于活動狀態(tài),BroadcastReceiver始終處于被監(jiān)聽狀態(tài)。在AndroidManifest.xml中為應(yīng)用程序添加適當(dāng)?shù)臋?quán)限;<uses-permissionandroid:name=“android.permission.WRITE_SETTINGS”/>等待接收廣播。我們注冊的BroadcastReceiver并非一直在后臺運行,一旦當(dāng)事件或相關(guān)的Intent傳來,就會被系統(tǒng)調(diào)用,處理onReceive()方法里的響應(yīng)事件。第九章Android后臺處理BroadcastReceiver組件實例2:通過一個按鈕來發(fā)出一個廣播信息,并將它顯示在狀態(tài)欄中。可以單擊一個按鈕,清除狀態(tài)欄中的通知信息。BroadcastReceiver組件沒有提供可視化的界面來顯示廣播信息,但可以使用Notification來實現(xiàn)廣播信息的顯示,提示音,閃爍和振動等消息提示。本例使用狀態(tài)欄顯示廣播信息。項目名:BroadcastRec_Demo定義兩個類:BroadcastRec_DemoActivity.java,是一個Activity類,在其中構(gòu)建案例中需要廣播的Intent,然后在按鈕的onClick()方法中使用sendBroadcast()方法發(fā)送出去,并且在該類的onResume()方法中注冊廣播接收器。MyReceiver.java,是一個繼承BroadcastReceiver的子類,在該子類的onReceive()方法中將傳入的廣播Intent中的信息發(fā)送給一個通知對象。第九章Android后臺處理Android后臺線程線程是比進(jìn)程更小的執(zhí)行單位。主線程當(dāng)一個程序首次啟動時,Android會啟動一個LINUX進(jìn)程和一個主線程。主線程負(fù)責(zé)處理與UI相關(guān)的事件,并把相關(guān)的事件分發(fā)到對應(yīng)的組件進(jìn)行處理。所以主線程通常又被叫做UI線程。AndroidUI操作必須在UI線程中執(zhí)行。Android的UI是單線程(Single-threaded)的。子線程非UI線程即為子線程,子線程一般都是后臺線程。運用子線程的場合:進(jìn)行數(shù)據(jù)、系統(tǒng)等其他非UI的操作。把所有運行慢的、耗時的操作移出主線程,放到子線程中。第九章Android后臺處理Android后臺線程Handler消息傳遞機(jī)制Android的子線程不能直接操作UI。如果需要可以嘗試使用Handler消息傳遞機(jī)制。Handler消息傳遞機(jī)制:一個Handler對應(yīng)一個Activity。自定義的后臺線程可與Handler通信,Handler將與UI線程一起工作。Handler類位于android.os包下。Handler的常用方法3GMS–WirelessLife方法返回類型描述handlerMessage(Messagemsg)void子類對象通過該方法接收消息sendEmptyMessage(intwhat)boolean發(fā)送一個只含有what值的消息sendMessage(Messagemsg)boolean發(fā)送消息到HandlerhasMessages(intwhat)boolean監(jiān)測消息隊列中是否還有what值的消息Post(Runnabler)boolean將一個線程添加到消息隊列中第九章Android后臺處理Android后臺線程Handler的使用開發(fā)Handler類的步驟:⑴在Activity或Activity的Widget中開發(fā)Handler類的對象,重載handlerMessage方法。⑵在新啟動的線程中調(diào)用sendEmptyMessage或sendMessage方法向Handler發(fā)送消息。⑶Handler類的對象用handlerMessage方法接收消息,然后根據(jù)消息執(zhí)行相應(yīng)的操作。第九章Android后臺處理Android后臺線程實例3:使用Handler機(jī)制以幻燈片的形式顯示IT界的名人照片,每張圖片停留3秒鐘。項目名:ThreadDemo定義兩個類:Activity類:ThreadDemoActivity.java繼承Thread的子類:MyThread.java第九章Android后臺處理三秒鐘之后Android后臺線程AsyncTaskAsyncTask是抽象類,位于android.os包下。AsyncTask是一種簡單的實現(xiàn)后臺運行事務(wù)的方式。利用AsyncTask我們不需要自己來寫后臺線程,無需終結(jié)后臺線程。有效地避免了使用Handler帶來的麻煩。AsyncTask的特點是任務(wù)在主線程之外運行,而通過回調(diào)方法在主線程中執(zhí)行。子類必須實現(xiàn)抽象方法doInBackground(Params…p),這個方法是必須要重寫的,用來在后臺線程中處理一些耗費時間的事情。
AsyncTask的執(zhí)行分為若干步驟,每一步都對應(yīng)一個回調(diào)方法,這些方法需要重寫。注意:在任務(wù)的執(zhí)行過程中,這些方法不由應(yīng)用程序調(diào)用,而是被自動調(diào)用的。第九章Android后臺處理Android后臺線程AsyncTask的常用方法AsyncTask定義了三種范式類型,被用于一個異步任務(wù)。Params:當(dāng)執(zhí)行時,參數(shù)類型發(fā)送到任務(wù),比如HTTP請求的URL。Progress:在后臺計算期間,后臺任務(wù)執(zhí)行的百分比。Result:后臺計算的結(jié)果類型,比如String。AsyncTask常用的需要重載的方法:方法描述
execute(Params...params)執(zhí)行一個異步任務(wù),需要我們在代碼中調(diào)用此方法,觸發(fā)異步任務(wù)的執(zhí)行onPreExecute()當(dāng)任務(wù)執(zhí)行之前開始調(diào)用此方法,可以在這里顯示進(jìn)度對話框doInBackground(Params…)此方法在后臺線程執(zhí)行,完成任務(wù)的主要工作,通常需要較長的時間。在執(zhí)行過程中可以調(diào)用publicProgress(Progress…)來更新任務(wù)的進(jìn)度onProgressUpdate(Progress…)此方法在主線程執(zhí)行,用于顯示任務(wù)執(zhí)行的進(jìn)度onPostExecute(Result)此方法在主線程執(zhí)行,任務(wù)執(zhí)行的結(jié)果作為此方法的參數(shù)返回第九章Android后臺處理Android后臺線程AsyncTask使用步驟一個AsyncTask運行的過程中,經(jīng)歷了4個步驟:⑴onPreExecute()
在execute調(diào)用后立即在ui線程中執(zhí)行。這步通常被用于設(shè)置任務(wù)。⑵doInBackground(Params...)
當(dāng)onPreExecute()執(zhí)行完成后,立即在后臺線程中運行。這步被用于執(zhí)行較長時間的后臺計算。異步任務(wù)的參數(shù)也被傳到這步。計算的結(jié)果必須在這步返回,將傳回到上一步。在執(zhí)行過程中可以調(diào)用publishProgress(Progress...)來更新任務(wù)的進(jìn)度。⑶onProgressUpdate(Progress...)
在調(diào)用publishProgress后,在UI線程中運行。執(zhí)行的時機(jī)是不確定的。當(dāng)后臺計算還在進(jìn)行時,這個方法用于在用戶界面顯示進(jìn)度。⑷onPostExecute(Result)當(dāng)后臺計算結(jié)束時,調(diào)用UI線程。后臺計算結(jié)果作為一個參數(shù)傳遞到這步。第九章Android后臺處理Android后臺線程AsyncTask使用規(guī)則必須遵守一些線程規(guī)則,AsyncTask類才能正確的工作。AsyncTask任務(wù)實例必須創(chuàng)建在UI線程中。execute(Params...)必須在UI線程上調(diào)用。不要手動調(diào)用下列方法:onPreExecute()onPostExecute(Result)doInBackground(Params...)onProgressUpdate(Progress...)每個AsyncTask只能有1個實例被執(zhí)行,同時運行2個以上的AsyncTask,將會拋出異常。第九章Android后臺處理Android后臺線程實例4:使用AsyncTask來完成進(jìn)度對話框的進(jìn)度更新操作。由于使用AsyncTask,任務(wù)在后臺運行,在前臺界面是看不到后臺執(zhí)行過程的,本例在代碼中增加了輸出Log的操作,便于大家看到其執(zhí)行過程。項目名:AsyncTask_PgDialog在Eclipse的LogCat窗口中可以看到后臺操作過程的日志記錄信息:第九章Android后臺處理ServiceService是后臺運行的,沒有用戶交互界面的“服務(wù)”。如:播放音樂;檢測SD卡上文件的變化;后臺數(shù)據(jù)計算,如記錄用戶的地理信息位置的改變;發(fā)出Notification。Service一般由Activity啟動,但不依賴于Activity。也可以由其他的Service或者BroadcastReceiver啟動。Service的生命周期Service的生命周期方法比Activity要少一些,只在:onCreate()onStart()onDestroy()Service組件第九章Android后臺處理Service的啟動方式:通過startService啟動啟動時,依次調(diào)用onCreate->onStart方法。注意:如果Service已經(jīng)啟動了,當(dāng)我們再次啟動Service時,不會再執(zhí)行onCreate()方法,而是直接執(zhí)行onStart方法。Android2.0以后用mand替換了之前的onStart,啟動時會自動調(diào)用該Service的mand方法。停止時直接進(jìn)入onDestroy。無論之前調(diào)用了幾次startService,一次stopService調(diào)用,將結(jié)束該Service。通過bindService啟動啟動時只運行onCreate方法。停止時,依次調(diào)用onUnbind->onDestroy方法。Service組件第九章Android后臺處理Service的進(jìn)程優(yōu)先級如果service正在調(diào)用onCreate()、onStart()或onDestory()方法,那么用于當(dāng)前service的進(jìn)程則變?yōu)榍芭_進(jìn)程以避免被killed。如果service已經(jīng)被啟動,擁有它的進(jìn)程僅比可見的進(jìn)程低,而比不可見的進(jìn)程重要,這就意味著service一般不會被killed.如果客戶端已經(jīng)連接到service,那么擁有它的進(jìn)程則擁有最高的優(yōu)先級,可以認(rèn)為該service是可見的。如果service可以使用startForeground(int,Notification)方法來將service設(shè)置為前臺狀態(tài),那么系統(tǒng)就認(rèn)為是對用戶可見的,并不會在內(nèi)存不足時killed。Service組件第九章Android后臺處理創(chuàng)建Service子類需要重寫的方法onBind(Intentintent)該方法是必須實現(xiàn)的方法,返回一個綁定的接口給Service。onCreate()該方法是當(dāng)Service第一次被創(chuàng)建時,由系統(tǒng)調(diào)用。onStart(Intentintent,intstartId)該方法是當(dāng)startService()方法啟動Service時,該方法被調(diào)用。onDestroy()該方法是當(dāng)Service不再使用時,由系統(tǒng)調(diào)用。注冊Service組件在應(yīng)用程序中使用Service,需要在AndroiManifest.xml文件中顯式地注冊<service>標(biāo)簽。Service組件第九章Android后臺處理啟動和停止Service啟動Service顯式啟動。通過類名稱,例如:IntentmyIntent=newIntent(this,MyService.class);myIntent.putExtra(“TOPPING”,”Margherita”);startService(myIntent);隱式啟動。通過IntentFilter,例如:startService(newIntent(this,MyService.class));停止Service使用stopSelf()方法使用stopService()方法,例如:stopService(newIntent(this,MyService.class));Service組件第九章Android后臺處理實例5:Service與BroadcastReceiver聯(lián)合應(yīng)用功能:通過按鈕啟動Service,Service運行兩分鐘后停止,或通過點擊“停止Service”按鈕中止Service;動態(tài)注冊一個BroadcastReceiver;通過BroadcastReceiver廣播Service運行的時間。項目:項目名:Service_BroadcastDemo資源:需要預(yù)設(shè)按鈕字符串代碼:Service_Broad_Demo.javaMyService.java注意:在AndroidManifest.xml中需要注冊Service組件: <serviceandroid:name=“.MyService”/>第九章Android后臺處理Service組件開發(fā)Android應(yīng)用項目,首先需要整理以下內(nèi)容:項目有哪些功能;需要哪些用戶界面;各界面之間跳轉(zhuǎn)的流程;需要的數(shù)據(jù)及其數(shù)據(jù)的來源和格式;是否需要服務(wù)端的支持;是否需要本地數(shù)據(jù)庫的支持;是否需要特殊的權(quán)限;是否需要后臺進(jìn)程等。在進(jìn)入具體的編碼前,需要形成相關(guān)開發(fā)文檔,描述上面涉及的問題。第九章Android后臺處理應(yīng)用開發(fā)步驟及案例開發(fā)步驟⑴用戶界面設(shè)計按照項目規(guī)劃文檔,使用XML文件描述出Android的用戶界面:布局模式、視圖組件、填充的數(shù)據(jù)等。⑵準(zhǔn)備需要的資源⑶數(shù)據(jù)操作和存儲數(shù)據(jù)來源(SharedPreferences、數(shù)據(jù)庫、ContentProvider、網(wǎng)絡(luò)等)及存儲開發(fā)。⑷多頁面的跳轉(zhuǎn)實現(xiàn)實現(xiàn)各個界面直接的調(diào)用和跳轉(zhuǎn)流程。⑸增加Service實現(xiàn)項目需要的Service。第九章Android后臺處理應(yīng)用開發(fā)步驟及案例開發(fā)步驟⑹完善應(yīng)用細(xì)節(jié)從網(wǎng)絡(luò)上獲取數(shù)據(jù),在manifest.xml中需要添加相關(guān)的uses-permission;老版本更新,在manifest.xml中需要更新versionCode,versionName;…⑺應(yīng)用測試使用模擬器和Eclipse中的DDMS功能。⑻打包發(fā)布第九章Android后臺處理應(yīng)用開發(fā)步驟及案例音樂播放器實例實例6:設(shè)計一個單機(jī)版的音樂播放器。功能:對指定的音樂進(jìn)行播放、暫停、停止控制;顯示歌曲的相關(guān)信息;按下menu鍵時,彈出“退出”選項菜單,退出時需要有退出確認(rèn)對話框。界面設(shè)計:只使用一個用戶界面main.xml;為配合歌曲內(nèi)容,設(shè)置背景;在界面的頂端放置按鈕和歌曲主要信息左邊并排放置兩按鈕,“播放”和“暫?!痹O(shè)置為一個按鈕的兩種狀態(tài);右邊縱向放置歌曲名稱、歌唱人、作詞作曲人信息。在界面下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣西華芯振邦半導(dǎo)體有限公司招聘44人筆試參考題庫附帶答案詳解
- 2024廣西農(nóng)墾良豐農(nóng)場有限公司招聘1人筆試參考題庫附帶答案詳解
- 某學(xué)校改擴(kuò)建項目可行性研究報告
- 2025年湖南生物機(jī)電職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 2024年北京公交運營駕駛員招聘筆試參考題庫附帶答案詳解
- 《沁園春·長沙》教學(xué)設(shè)計 2023-2024學(xué)年統(tǒng)編版高中語文必修上冊
- 2025年惠州衛(wèi)生職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 2024年1月浙江省首考普通高等學(xué)校招生全國統(tǒng)一考試英語試題及答案
- 2024年12月昆山經(jīng)濟(jì)技術(shù)開發(fā)區(qū)錦華幼兒園公開招聘保育員1名筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年廣西農(nóng)業(yè)工程職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫匯編
- 食品防護(hù)評估表
- 編輯出版史考試重點整理
- (74)-17.3手性高效液相色譜法
- 淺談新生兒肺透明膜病的影像學(xué)診斷
- SMT失效模式分析PFMEA
- 國際貿(mào)易地理全套課件
- 家校共育-助孩子成長-家長會課件
- 叉形件工藝及車床夾具設(shè)計說明書
- GB/T 5916-2008產(chǎn)蛋后備雞、產(chǎn)蛋雞、肉用仔雞配合飼料
- 《中小學(xué)教育懲戒規(guī)則》(試用)試題及答案
- GB/T 23723.1-2009起重機(jī)安全使用第1部分:總則
評論
0/150
提交評論