成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android后臺(tái)程序應(yīng)用技巧分享

移動(dòng)開發(fā) Android
Android后臺(tái)程序是一種無界面程序。它主要就是在后臺(tái)執(zhí)行,而不會(huì)影響你的界面。我們在這里就會(huì)為大家詳細(xì)介紹一下這方面的知識(shí)。

Android手機(jī)操作系統(tǒng)是由谷歌推出的一款開源的基于Linux平臺(tái)的操作系統(tǒng),深受廣大編程愛好者的喜愛。在Android系統(tǒng)中我們一直在接觸著前臺(tái)界面程序,其實(shí)在一開始接觸Android時(shí)就聽說了,程序就有有界面和無界面之分。#t#

Android后臺(tái)程序就是這類無界面的程序,它在后臺(tái)執(zhí)行,沒有影響你的界面。比如短信監(jiān)聽程序,執(zhí)行在后臺(tái),當(dāng)有短信時(shí)才給你們提示,振動(dòng)或聲音;比如鬧鐘,設(shè)定好時(shí)間后,在定時(shí)通知你;再比如mp3播放器,選擇好音樂后,在待在后臺(tái)唱著,當(dāng)有電話來時(shí),自動(dòng)暫停,完后再繼續(xù)播放。

其實(shí)分析下來,我們不難發(fā)現(xiàn),Android后臺(tái)程序跟前臺(tái)程序是一樣的,也就是在執(zhí)行我們指定的程序,只是留給我們兩個(gè)問題,1.因?yàn)闆]有界面,我們會(huì)問,怎么啟動(dòng),怎么終止?2.因?yàn)闆]有界面,這程序如何通知我們一些信息或狀態(tài)。

前面的學(xué)習(xí)讓我們知道,一個(gè)Activity想Call另一個(gè)Activity時(shí),只需要能過中介人Intent就可以了,同樣我們與服務(wù)處理類打交道也是通過Intent來實(shí)現(xiàn),當(dāng)然,界面類是繼承著Activity,而服務(wù)類則是繼承著Service類。

啟動(dòng)服務(wù):

 

  1. // Implicitly start a Service  
  2. startService(new Intent(MyService.MY_ACTION));  
  3. // Explicitly start a Service  
  4. startService(new Intent(this, MyService.class)); 

 

停止服務(wù):

 

  1. stopService(new Intent(this, MyService.class)); 

 

同樣,跟Activity一樣的生命期中,系統(tǒng)也會(huì)自動(dòng)跟據(jù)不同的狀態(tài)來調(diào)用繼承函數(shù):

 

  1. @Override  
  2. public void onCreate()   
  3. public IBinder onBind(Intent intent)  
  4. public void onStart(Intent intent, int startId)  
  5. 。。。 

 

在實(shí)際的開發(fā)中,我們一般都不會(huì)直接寫一個(gè)服務(wù)類,一般都會(huì)寫一個(gè)與Android后臺(tái)程序相配套的前臺(tái)程序,一般的程序總會(huì)有一些配置吧~~,然后這個(gè)界面中就可以很方便地來控制后臺(tái)程序的運(yùn)作。

 

 

我們來回答第二個(gè)問題,就是在服務(wù)中我們怎么發(fā)起一個(gè)通知給用戶,在Andorid中,提供了以下幾種方式:

1. Toast

這是一個(gè)無模式的小窗體,會(huì)將顯示的信息顯示在首頁面中:

 


實(shí)現(xiàn)代碼是:

 

  1. Context context = getApplicationContext();  
  2. String msg = “To the bride an groom!”;  
  3. int duration = Toast.LENGTH_SHORT;  
  4. Toast toast = Toast.makeText(context, msg, duration);  
  5. int offsetX = 0;  
  6. int offsetY = 0;  
  7. toast.setGravity(Gravity.BOTTOM, offsetX, offsetY);  
  8. toast.show(); 

 

當(dāng)然,你也可以顯示更雜的,可以將一個(gè)控制直接當(dāng)成一個(gè)Toast顯示出來,也可以自定義一個(gè)控件顯示出來,自定義控件的強(qiáng)大是大家都知道的~~

 

2. Notifications

這種方式是系統(tǒng)中比較通用的模式,通過這種方式你可以使系統(tǒng):將一個(gè)圖標(biāo)在狀態(tài)條上閃,讓機(jī)器震動(dòng),發(fā)出聲音等。

實(shí)現(xiàn)代碼:

 

  1. String svcName = Context.NOTIFICATION_SERVICE;  
  2. NotificationManager notificationManager;  
  3. notificationManager = (NotificationManager)getSystemService(svcName);  
  4. // Choose a drawable to display as the status bar icon  
  5. int icon = R.drawable.icon;  
  6. // Text to display in the status bar when the notification is launched  
  7. String tickerText = “Notification”;  
  8. // The extended status bar orders notification in time order  
  9. long when = System.currentTimeMillis();  
  10. Notification notification = new Notification(icon, tickerText, when);  
  11. Context context = getApplicationContext();  
  12. // Text to display in the extended status window  
  13. String expandedText = “Extended status text”;  
  14. // Title for the expanded status  
  15. String expandedTitle = “Notification Title”;  
  16. // Intent to launch an activity when the extended text is clicked  
  17. Intent intent = new Intent(this, MyActivity.class);  
  18. PendingIntent launchIntent = PendingIntent.getActivity(context, 0, intent, 0);  
  19. notification.setLatestEventInfo(context, expandedTitle,expandedText,launchIntent); 

 

觸發(fā)方式:

 

  1. int notificationRef = 1;  
  2. notificationManager.notify(notificationRef, notification); 

 

 

學(xué)會(huì)了Activity再寫個(gè)Android后臺(tái)程序也就不難了??!

這里順便再提一下,在Android系統(tǒng)中也提供了多線程編程,我們知道不管是前臺(tái)還是后臺(tái)程序,都有生命期的,當(dāng)程序不活動(dòng)時(shí),我們想繼續(xù)讓程序執(zhí)行,這里我們需要用到線程了,在Android系統(tǒng)中使用線程,跟我們直接寫java線程程序非常想似:

 

  1. // This method is called on the main GUI thread.  
  2. private void mainProcessing() {  
  3. // 主程序中啟動(dòng)線程.  
  4. Thread thread = new Thread(null, doBackgroundThreadProcessing, 
    “Background”);  
  5. thread.start();  
  6. }  
  7. // Runnable that executes the background processing method.  
  8. private Runnable doBackgroundThreadProcessing = new Runnable() {  
  9. public void run() {  
  10. //線程執(zhí)行內(nèi)容。。。  
  11. }  
  12. }; 

Android后臺(tái)程序的相關(guān)應(yīng)用就為大家介紹的這里。

責(zé)任編輯:曹凱 來源: CSDN
相關(guān)推薦

2010-01-25 11:09:58

Android Htt

2010-01-25 17:21:34

Android Act

2010-01-25 16:08:37

Android ADB

2009-04-17 09:11:19

RIMIphone移動(dòng)OS

2010-01-28 10:55:14

Android電源管理

2009-12-15 10:23:23

Ruby應(yīng)用技巧

2010-01-27 18:33:16

Android SQL

2009-12-29 17:56:47

Silverlight

2009-12-30 18:23:13

Silverlight

2009-12-25 10:11:46

WPF后臺(tái)控制動(dòng)畫

2009-12-31 17:00:40

Silverlight

2010-01-04 14:35:55

Silverlight

2010-03-01 13:06:49

WCF繼承

2011-09-12 15:09:56

打印機(jī)常見問題

2020-02-26 16:46:49

iPhone電池應(yīng)用程序

2009-12-29 16:08:41

Silverlight

2010-02-01 11:13:00

C++ Traits

2009-12-18 10:47:16

Ruby裝飾模式

2010-03-03 17:56:44

Android應(yīng)用程序

2009-12-30 10:25:03

Silverlight
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 天天综合国产 | 成人福利在线观看 | 国产在线精品一区二区三区 | 涩涩视频网站在线观看 | 亚洲综合无码一区二区 | 精品1区2区3区 | 欧美激情黄色 | 国产在线精品一区二区 | 韩国av电影网 | 色综合网站 | 久草网站 | h片在线免费看 | 日韩av一区二区在线观看 | 午夜在线免费观看 | 中文字幕在线一区二区三区 | 妖精视频一区二区三区 | av免费成人 | 国产1区2区 | 国产在线看片 | 黄色一级大片在线免费看产 | 久久综合婷婷 | www.色综合| 日本在线观看网址 | 日本成人在线网址 | 81精品国产乱码久久久久久 | 视频一区二区三区在线观看 | 欧美一级黄| 粉嫩av久久一区二区三区 | 亚洲精品永久免费 | 日韩视频专区 | 欧美综合国产精品久久丁香 | 日韩不卡视频在线观看 | 日本不卡一区二区三区在线观看 | av天天看 | 综合一区| 亚洲国产成人在线 | 亚洲一区二区精品视频 | www久久av | av网站在线播放 | 欧美电影大全 | 视频在线亚洲 |