日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android后臺程序應(yīng)用技巧分享

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

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

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

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

啟動服務(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)也會自動跟據(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. 。。。

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

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

1. Toast

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

實現(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)然,你也可以顯示更雜的,可以將一個控制直接當(dāng)成一個Toast顯示出來,也可以自定義一個控件顯示出來,自定義控件的強大是大家都知道的~~

2. Notifications

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

實現(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é)會了Activity再寫個Android后臺程序也就不難了?。?/p>

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

 
 
 
  1. // This method is called on the main GUI thread.
  2. private void mainProcessing() {
  3. // 主程序中啟動線程.
  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后臺程序的相關(guān)應(yīng)用就為大家介紹的這里。


網(wǎng)站題目:Android后臺程序應(yīng)用技巧分享
網(wǎng)址分享:http://m.5511xx.com/article/cciecde.html