Android高手進階教程(十八)之—列出Android裝置中所有啟動的服務,及判斷某個服務是否開啟!

來源:互聯網
上載者:User

大家好,好久不見,今天在開發中遇到的一個問題給大家分享一下,我先前做了一個音樂播放器,因為播放音樂一般都是用服務來處理的。

當使用者點擊播放按鈕時,音樂在服務中播放,然後用使用者退出程式(服務進程還在,音樂還繼續),所以妥使用者點再次進入應用時,我們播放器要處於播放狀態,這裡我作了簡單的處理,判斷這個音樂服務是否開啟來完成的。

今天給大家的小例子是列出Android裝置中所有啟動的服務,及判斷某個服務是否開啟,具體步驟如下了:

第一步:建立一個Android工程,命名為RunningService。

第二步:修改RunningService.java代碼如下:

package com.tutor.runningservice;<br />import java.util.List;<br />import android.app.Activity;<br />import android.app.ActivityManager;<br />import android.os.Bundle;<br />import android.widget.TextView;<br />public class RunningService extends Activity {<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> //setContentView(R.layout.main);<br /> TextView mTextView = new TextView(this);<br /> ActivityManager mActivityManager =<br /> (ActivityManager)getSystemService(ACTIVITY_SERVICE);</p><p> List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);<br /> //我要判斷的服務名字,我在launcher2裡加了一個音樂服務<br /> final String musicClassName = "com.android.launcher2.MusicService";</p><p> boolean b = MusicServiceIsStart(mServiceList, musicClassName);</p><p> mTextView.setText("你要判斷的服務狀態為: " +b+"/n" + getServiceClassName(mServiceList));<br /> setContentView(mTextView);<br /> }<br /> //通過Service的類名來判斷是否啟動某個服務<br /> private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){</p><p> for(int i = 0; i < mServiceList.size(); i ++){<br /> if(className.equals(mServiceList.get(i).service.getClassName())){<br /> return true;<br /> }<br /> }<br /> return false;<br /> }<br /> //擷取所有啟動的服務的類名<br /> private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){<br /> String res = "";<br /> for(int i = 0; i < mServiceList.size(); i ++){<br /> res+=mServiceList.get(i).service.getClassName()+ " /n";<br /> }</p><p> return res;<br /> }<br />}

 

第三步:運行上述工程,查看效果!

 

不看不知道,一看嚇一跳,乖乖,開了這麼多服務,難怪手機很快就沒電了。

 

 

上面的一些服務好多是系統內建的,並且不可見的,我們可以到Settings->Applications->Running services查看

一共才看到十來個服務。

 

OK,今天就這麼多,呵呵,繼續上班中..............

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.