android service
android的后臺運行在很多service,它們在系統(tǒng)啟動時被SystemServer開啟字支,支持系統(tǒng)的正常工作.
比如MountService監(jiān)聽是否有SD卡安裝及移除浩嫌,ClipboardService提供剪切板功能,PackageManagerService提供軟件包的安裝移除及查看等 等,應用程序可以通過系統(tǒng)提供的Manager接口來訪問這些Service提供的數(shù)據(jù)杉女。
getSystemService是Android很重要的一個API,它是Activity的一個方法鸳吸,根據(jù)傳入的NAME來取得對應的Object熏挎,然后轉換成相應的服務對象。
使用getSystemService()獲取系統(tǒng)服務晌砾,需要注意的是坎拐,總是使用上下文:
context.getSystemService
傳入的Name | 返回的對象 | 說明 |
---|---|---|
WINDOW_SERVICE | WindowManager | 管理打開的窗口程序 |
LAYOUT_INFLATER_SERVICE | LayoutInflater | 取得xml里定義的view |
ACTIVITY_SERVICE | ActivityManager | 管理應用程序的系統(tǒng)狀態(tài) |
POWER_SERVICE | PowerManger | 電源的服務 |
ALARM_SERVICE | AlarmManager | 鬧鐘的服務 |
NOTIFICATION_SERVICE | NotificationManager | 狀態(tài)欄的服務 |
KEYGUARD_SERVICE | KeyguardManager | 鍵盤鎖的服務 |
LOCATION_SERVICE | LocationManager | 位置的服務,如GPS |
SEARCH_SERVICE | SearchManager | 搜索的服務 |
VEBRATOR_SERVICE | Vebrator | 手機震動的服務 |
CONNECTIVITY_SERVICE | Connectivity | 網(wǎng)絡連接的服務 |
WIFI_SERVICE | WifiManager | Wi-Fi服務 |
TELEPHONY_SERVICE | TeleponyManager | 電話服務 |
實例代碼
獲取網(wǎng)絡狀態(tài):
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();