2012-02-22 171 views
3

我開發一個任務管理器應用程序..停止或中止服務

在該應用程序,我展示給用戶正在運行的應用列表,並殺死每個應用程序旁邊的按鈕。 當用戶按下殺按鈕相應的活動將被殺死,我用

 activitymanager.killbackgroundprocesses(packageName) 

我創建了一個叫做服務通知另一個應用程序,其中用戶可以啓動,並通過點擊按鈕「啓動服務」按鈕「一站式服務停止服務「分別..然後在運行我的任務管理器應用程序之前,我從服務通知應用程序啓動服務。 所以這個活性顯示在我的任務管理器應用程序。

但是,當我殺了那個活動,它從列表中消失,然後再次出現,因爲服務是restarting..How我殺了服務隊呢?

我用startService和的onCreate啓動服務和顯示一些通知和stopService和的onDestroy停止服務......

+0

〜「運行我的任務管理器應用程序之前,我就開始了來自服務通知應用的服務「。所以你說的是,無論用戶是否選擇啓動它,你都啓動所有的服務? – 2014-01-01 21:45:15

回答

8

我終於找到了答案,我的問題...

後使用

activitymanager.killbackgroundprocesses(packageName) , 

我們要檢查是否有正在該套件名稱或進程名運行的所有服務。

然後,我們必須使用

stopService(new Intent().setComponent(serviceInfos.get(i).service)) 

但它會返回一個錯誤,因爲Android不容許我們停止其他服務

所以我用清單中的這兩條線,然後跑到我的應用程序在構建機器

coreApp="true" 
android:sharedUserId="android.uid.system" 

這兩條線有沒有在Android設置清單文件,允許設置,如果用戶想要停止服務。

所以活動得到了與服務一起遇難... :)

記住這個工作只在構建機上....

+0

什麼是構建機器,你的意思是你做的手機? – pengwang 2012-04-07 05:59:40

+0

不,它是Linux的機器,其中Android的SDK使用構建命令內置.... – DSP 2012-04-09 04:24:10

+0

我們可以建立自己的SDK,我說的對 – pengwang 2012-04-09 05:26:28