編輯:開發入門
Android手機操作系統是由谷歌推出的一款開源的基於Linux平台的操作系統,深受廣大編程愛好者的喜愛。在android系統中我們一直在接觸著前台界面程序,其實在一開始接觸android時就聽說了,程序就有有界面和無界面之分。
android後台程序就是這類無界面的程序,它在後台執行,沒有影響你的界面。比如短信監聽程序,執行在後台,當有短信時才給你們提示,振動或聲音;比如鬧鐘,設定好時間後,在定時通知你;再比如mp3播放器,選擇好音樂後,在待在後台唱著,當有電話來時,自動暫停,完後再繼續播放。
其實分析下來,我們不難發現,android後台程序跟前台程序是一樣的,也就是在執行我們指定的程序,只是留給我們兩個問題,1.因為沒有界面,我們會問,怎麼啟動,怎麼終止?2.因為沒有界面,這程序如何通知我們一些信息或狀態。
前面的學習讓我們知道,一個Activity想Call另一個Activity時,只需要能過中介人Intent就可以了,同樣我們與服務處理類打交道也是通過Intent來實現,當然,界面類是繼承著Activity,而服務類則是繼承著Service類。
啟動服務:
1.// Implicitly start a Service
2.startService(new Intent(MyService.MY_ACTION));
3.// Explicitly start a Service
4.startService(new Intent(this, MyService.class));
停止服務:
1.stopService(new Intent(this, MyService.class));
同樣,跟Activity一樣的生命期中,系統也會自動跟據不同的狀態來調用繼承函數:
1.@Override
2.public void onCreate()
3.public IBinder onBind(Intent intent)
4.public void onStart(Intent intent, int startId)
5.。。。
在實際的開發中,我們一般都不會直接寫一個服務類,一般都會寫一個與android後台程序相配套的前台程序,一般的程序總會有一些配置吧~~,然後這個界面中就可以很方便地來控制後台程序的運作。
我們來回答第二個問題,就是在服務中我們怎麼發起一個通知給用戶,在Andorid中,提供了以下幾種方式:
1. Toast
這是一個無模式的小窗體,會將顯示的信息顯示在首頁面中:
實現代碼是:
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();
當然,你也可以顯示更雜的,可以將一個控制直接當成一個Toast顯示出來,也可以自定義一個控件顯示出來,自定義控件的強大是大家都知道的~~
2. Notifications
這種方式是系統中比較通用的模式,通過這種方式你可以使系統:將一個圖標在狀態條上閃,讓機器震動,發出聲音等。
實現代碼:
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);
觸發方式:
1.int notificationRef = 1;
2.notificationManager.notify(notificationRef, notification);
學會了Activity再寫個android後台程序也就不難了!!
這裡順便再提一下,在android系統中也提供了多線程編程,我們知道不管是前台還是後台程序,都有生命期的,當程序不活動時,我們想繼續讓程序執行,這裡我們需要用到線程了,在android系統中使用線程,跟我們直接寫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.//線程執行內容。。。
11.}
12.};
簡介本文建立在 “使用 Eclipse 開發 android 應用程序” 一文的基礎之上,探究了 Android 的網絡功能。了解如何利用 Android 的網絡選項來
在android應用程序開發中,經常會遇到需要進行數據庫操作的時候,有關數據庫事務處理對android應用程序的穩定性和效率提升非常重要。 &nb
重播有JS調用Flash函數重播有問題。這個和安全沙箱有關系。我搞不定。所以這裡的重播是刷新了WebVIEw。上一節,大體說了下在android程序中嵌套Flash動畫
XMLvsJSON 應用程序真實的實時更新需要注意的是,樣例應用程序沒有實時地從 web 移動數據,盡管我們期盼一個真實應用程序。由於數據 feeds 取自原始資源文件