2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十一章 Service 服務(wù)上機(jī)課,,上機(jī)內(nèi)容,Service的生命周期Service后臺服務(wù),上機(jī)目標(biāo),掌握非綁定式Service和綁定式Service生命周期對應(yīng)的函數(shù)掌握如何顯式啟動和隱式啟動Service掌握利用綁定服務(wù),在Activity中調(diào)用Service的方法,上機(jī)任務(wù),顯式啟動服務(wù),在該服務(wù)啟動后產(chǎn)生一個隨機(jī)數(shù),并使用Toast顯示在屏幕上2. 利用綁定服務(wù),在Activity中調(diào)用Service

2、的方法,階段任務(wù)一:指導(dǎo)部分,任務(wù)說明在應(yīng)用程序中建立Service,顯式啟動服務(wù),在該服務(wù)啟動后產(chǎn)生一個隨機(jī)數(shù),并使用Toast顯示在屏幕上,階段任務(wù)一:指導(dǎo)部分,實現(xiàn)思路 1. 創(chuàng)建RandomService,重寫生命周期方法。在onStartCommand ()中 用Math.random()生成隨機(jī)數(shù),利用Toast顯示2. 創(chuàng)建布局文件,有兩個按鈕,一個“啟動Service”按鈕,一個“停 Se

3、rvice”按鈕3. 創(chuàng)建SimpleRandomServiceDemoActivity,單擊“啟動Service”按 鈕,顯式啟動服務(wù)。單擊“停止Service”按鈕,停止服務(wù)4. 在清單文件AndroidManifest.xml中注冊Service,階段任務(wù)一:指導(dǎo)部分,實現(xiàn)過程1.編寫RandomService.javapublic class RandomService extends Service{

4、@Overridepublic void onCreate() { super.onCreate(); Toast.makeText(this, "(1) 調(diào)用onCreate()", Toast.LENGTH_LONG).show(); }@Overridepublic int onStartCommand(Intent intent, int flags

5、, int startId) {Toast.makeText(this, "(2) 調(diào)用onStartCommand()", Toast.LENGTH_SHORT).show(); double randomDouble = Math.random(); //產(chǎn)生隨機(jī)數(shù) String msg = "隨機(jī)數(shù):"+ String.valueOf(r

6、andomDouble); Toast.makeText(this,msg, Toast.LENGTH_SHORT).show();return super.onStartCommand(intent, flags, startId);},階段任務(wù)一:指導(dǎo)部分,實現(xiàn)過程1.編寫RandomService.javapublic class RandomService extends Service{ (

7、續(xù))@Overridepublic void onDestroy() { super.onDestroy(); Toast.makeText(this, "(3) 調(diào)用onDestroy()", Toast.LENGTH_SHORT).show(); } @Overridepublic IBinder onBind(Intent intent)

8、{return null;}},階段任務(wù)一:指導(dǎo)部分,實現(xiàn)過程2.創(chuàng)建布局文件main.xml ,階段任務(wù)一:指導(dǎo)部分,3.創(chuàng)建SimpleRandomServiceDemoActivitypublic class SimpleRandomServiceDemoActivity extends Activity { @Override public voi

9、d onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button startButton = (Button)findViewById(R.id.start); Button stopButton =

10、 (Button)findViewById(R.id.stop); final Intent serviceIntent = new Intent(this, RandomService.class); startButton.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v

11、iew){ startService(serviceIntent); } }); stopButton.setOnClickListener(new Button.OnClickListener(){ public void onClick(View view){ stopService(s

12、erviceIntent); } }); }},階段任務(wù)一:指導(dǎo)部分,4.在清單文件AndroidManifest.xml中注冊Service ,階段

13、任務(wù)一:練習(xí)部分,應(yīng)用程序中建立Service,隱式啟動服務(wù);在該服務(wù)啟動后產(chǎn)生一個隨機(jī)數(shù),并使用Toast顯示在屏幕上;在界面上單擊“啟動Service”按鈕啟動RandomService服務(wù);單擊“停止Service”按鈕停止RandomService服務(wù),階段任務(wù)一:練習(xí)部分,共性問題集中講解,階段任務(wù)二:指導(dǎo)部分需求說明,單擊“服務(wù)綁定”按鈕,用Toast顯示“您已經(jīng)綁定AddService”;單擊“取消綁定”按

14、鈕,用Toast顯示“您已經(jīng)取消綁定AddService”;綁定服務(wù)后,在第一個EditText輸入1,第二個EditText輸入2,單擊“求和”按鈕,在第三個EditText輸出3;單擊“取消綁定” 按鈕,用Toast顯示"您取消綁定AddService",此時單擊“求和”按鈕,用Toast顯示"沒有綁定服務(wù)!",階段任務(wù)二:指導(dǎo)部分,實現(xiàn)思路(1)創(chuàng)建AddService,在其中定義兩

15、個數(shù)相加的方法,并創(chuàng)建 AddService內(nèi)部類LocalBinder,繼承Binder類,返回AddService的實例對象(2)創(chuàng)建布局文件 (3)創(chuàng)建MainActivity,單擊“服務(wù)綁定”按鈕,綁定服務(wù)。單擊“取消綁定” 按鈕,取消服務(wù)綁定。在MainActivity中得到AddService實例對象, 就可以訪問AddService中的add方法了。單擊“求和”按鈕,如

16、沒有綁 定服務(wù),用Toast顯示“沒有綁定服務(wù)!”否則,把在第一個EditText輸 入值和在第二個EditText輸入值相加,結(jié)果輸出在第三個EditText中(4)在清單文件AndroidManifest.xml中注冊Service,階段任務(wù)二:指導(dǎo)部分,實現(xiàn)過程 1.編寫AddService.javapublic class AddService extends Serv

17、ice { private final IBinder mBinder = new LocalBinder (); public class LocalBinder extends Binder { AddService getService(){ return AddService.this; } } public int ad

18、d(int a,int b){ return a + b; } @Override public IBinder onBind(Intent arg0){ Toast.makeText (this, "您已經(jīng)綁定AddService", Toast.LENGTH_SHORT).show (); return mBinder

19、; } @Override public boolean onUnbind(Intent intent){ Toast.makeText (this, "您取消綁定AddService", Toast.LENGTH_SHORT).show (); return super.onUnbind (intent); }},階段任務(wù)二:指導(dǎo)部分

20、,實現(xiàn)過程 2.創(chuàng)建布局文件main.xml(略)3.創(chuàng)建MainActivitypublic class MainActivity extends Activity {private AddService addService;private boolean isBound = false;@Overrideprotected void onCreate(Bundle savedInstance

21、State) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final EditText edittext1 = (EditText) findViewById(R.id.editText1);final EditText edittext2 = (EditText) findViewById(R.id.edi

22、tText2);final EditText edittext3 = (EditText) findViewById(R.id.editText3);Button bindButton = (Button) findViewById(R.id.button1);Button unbindButton = (Button) findViewById(R.id.button2);Button computeButto

23、n = (Button) findViewById(R.id.button3);,階段任務(wù)二:指導(dǎo)部分,實現(xiàn)過程 2.創(chuàng)建布局文件main.xml(略)3.創(chuàng)建MainActivityprotected void onCreate(Bundle savedInstanceState) { (續(xù))bindButton.setOnClickListener(new OnClickListener() { //

24、綁定按鈕的監(jiān)聽@Overridepublic void onClick(View v) { if (!isBound) { final Intent serviceIntent = new Intent(MainActivity.this, AddService.class);

25、 bindService(serviceIntent, mConnection,Context.BIND_AUTO_CREATE); isBound = true; }}});// 取消綁定unbindButton.setOnClickListener(new OnClickListener() { //取消綁定按鈕的監(jiān)聽@Override

26、public void onClick(View v) { if (isBound) {isBound = false;unbindService(mConnection);addService = null; }}});,階段任務(wù)二:指導(dǎo)部分,實現(xiàn)過程 2.創(chuàng)建布局文件main.xml(略)3.創(chuàng)建MainActivityprotect

27、ed void onCreate(Bundle savedInstanceState) { (續(xù))computeButton.setOnClickListener(new OnClickListener() { //求和按鈕的監(jiān)聽@Overridepublic void onClick(View v) { if (addService == null) {Toast.makeTe

28、xt(MainActivity.this, "沒有綁定服務(wù)!", oast.LENGTH_SHORT).show();return; } int a = Integer.parseInt(edittext1.getText().toString()); int b = Integer.parseInt(edittext2.getTe

29、xt().toString()); String result =String.valueOf( addService.add(a, b)); edittext3.setText(result);}});} //onCreate結(jié)束,階段任務(wù)二:指導(dǎo)部分,實現(xiàn)過程 2.創(chuàng)建布局文件main.xml(略)3.創(chuàng)建MainActivitypriv

30、ate ServiceConnection mConnection = new ServiceConnection() {@Overridepublic void onServiceDisconnected(ComponentName name) {addService = null;}@Overridepublic void onServiceConnected(ComponentName nam

31、e, IBinder service) { addService = ((AddService.LocalBinder) service).getService();}};} // MainActivity結(jié)束,階段任務(wù)二:指導(dǎo)部分,實現(xiàn)過程 4.在清單文件AndroidManifest.xml中注冊Service

32、 ,階段任務(wù)二:練習(xí)部分,(1)單擊“綁定服務(wù)”按鈕,用Toast顯示“您已經(jīng)綁定MathService”;(2)在服務(wù)綁定后,用戶單擊“乘積運算”按鈕,將兩個隨機(jī)產(chǎn)生的0到 100的隨機(jī)數(shù)傳遞到MathService,并從MathService對象中獲取乘 積的結(jié)果,然后顯示在屏幕的TextView上;(3)單擊“取消綁定” 按鈕,用Toast顯示“您取消綁定MathService”, 此

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論