大家好,好久不見,今天在開發中遇到的一個問題給大家分享一下,我先前做了一個音樂播放器,因為播放音樂一般都是用服務來處理的。
當用戶點擊播放按鈕時,音樂在服務中播放,然后用用戶退出程序(服務進程還在,音樂還繼續),所以妥用戶點再次進入應用時,我們播放器要處于播放狀態,這里我作了簡單的處理,判斷這個音樂服務是否開啟來完成的。
今天給大家的小例子是列出Android設備中所有啟動的服務,及判斷某個服務是否開啟,具體步驟如下了:
第一步:新建一個Android工程,命名為RunningService。
第二步:修改RunningService.java代碼如下:
~~~
package com.tutor.runningservice;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.os.Bundle;import android.widget.TextView;public class RunningService extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); TextView mTextView = new TextView(this); ActivityManager mActivityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30); //我要判斷的服務名字,我在launcher2里加了一個音樂服務 final String musicClassName = "com.android.launcher2.MusicService"; boolean b = MusicServiceIsStart(mServiceList, musicClassName); mTextView.setText("你要判斷的服務狀態為: " +b+"/n" + getServiceClassName(mServiceList)); setContentView(mTextView); } //通過Service的類名來判斷是否啟動某個服務 private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){ for(int i = 0; i < mServiceList.size(); i ++){ if(className.equals(mServiceList.get(i).service.getClassName())){ return true; } } return false; } //獲取所有啟動的服務的類名 private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){ String res = ""; for(int i = 0; i < mServiceList.size(); i ++){ res+=mServiceList.get(i).service.getClassName()+ " /n"; } return res; }}
~~~
?
第三步:運行上述工程,查看效果!
?
不看不知道,一看嚇一跳,乖乖,開了這么多服務,難怪手機很快就沒電了。
?

?
上面的一些服務好多是系統自帶的,并且不可見的,我們可以到Settings->Applications->Running services查看
一共才看到十來個服務。

?
OK,今天就這么多,呵呵,繼續上班中..............
- 前言
- (一)Android常用名令集錦(圖文并茂)!
- (二)Android Launcher抽屜類SlidingDrawer的使用!
- (三)Android 中自定義View的應用.
- (四)Android 中自定義屬性(attr.xml,TypedArray)的使用!
- (五)Android 中LayoutInflater的使用!
- (六)Android 中MenuInflater的使用(布局定義菜單)!
- (七)Android 中Preferences的使用!
- (八)Android Widget開發案例(世界杯倒計時!)
- (九)Android Handler的使用!!!
- (十)Android PopupWindow的使用!!!
- (十一)Android 通用獲取Ip的方法(判斷手機是否聯網的方法)!!!
- (十二)Android 在一個應用中如何啟動另外一個已安裝的應用!!!
- (十三)Android 數據庫SQLiteDatabase的使用!!
- (十四)Android Location的使用!!
- (十五)通過Location獲取Address的使用!
- (十六)Android中萬能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android 中的拿來主義(編譯,反編譯,AXMLPrinter2,smali,baksmali)!
- (十七)Android中Intent傳遞對象的兩種方法(Serializable,Parcelable)!
- (十八)列出Android設備中所有啟動的服務,及判斷某個服務是否開啟!
- (十九)Android開發中,使用線程應該注意的問題!
- (二十)Android與JavaScript方法相互調用!
- (二十一)Android中創建與幾種解析xml的方法!
- (二十二)Android中幾種圖像特效處理的集錦!!
- (二十三)Android中的日歷讀寫操作!!!
- (二十四)Android WebView的緩存!!!
- (二十五)Android 中的AIDL!!!