2012-02-07 150 views
2

我有一個requiremet,我想繼續在背景中運行服務,它不能由用戶頂部或它不能強制停止進入管理應用程序。有什麼方法可以在用戶嘗試強制停止服務時收到通知?或者以任何方式在android中隱藏我們的應用程序。如何防止用戶在android中強制停止服務?

我已經完成了START_STICKY,但它無法工作。 它可以寫我們的代碼在android系統服務(或系統代碼),不能被殺死或內核級別的編碼?

我的主要標準是,我的服務不能被用戶被殺死

請幫助我,這

感謝提前

+1

如果你可以阻止他們停止它們,他們會只是惱火,最終卸載它。什麼原因阻止用戶控制在自己的設備上運行的內容? – weston 2012-02-07 13:09:17

+0

我同意@weston--從用戶聲音中剔除控制聲音,並且可能會惹惱他們。 – 2012-02-08 00:16:31

+0

@ weston - 但我的應用程序是作爲一個間諜電話這就是爲什麼我想要prevant用戶來阻止它 – 2012-02-08 05:25:34

回答

2

首先,託管服務的過程總是可以通過殺死系統是否處於內存不足的情況。你的服務甚至不會注意到它已經被殺死,它甚至不會得到onDestroy()。如果您的服務正在做最終用戶直接意識到的事情(例如播放音樂),您應該在前臺啓動服務(使用startForeground),以減少系統在內存不足情況下將其殺死的可能性。

如果某個服務被最終用戶或系統殺死,它將在需要時或存在可用資源時重新啓動。

說了這麼多,你想做的事情是不可能的,通過設計。要麼你的標準是基於對Android工作方式的一些誤解,要麼你的應用程序應該做一些它想要從最終用戶隱藏的東西(這是非常可疑的)。

+0

thanx回答bergsell – 2012-02-08 05:16:58

+0

我的服務沒有做到知道最終用戶它將作爲間諜使用最終用戶。用戶不知道應用程序是否安裝在他們的電話中 我可以這樣做啓動兩個服務,它將監視其他服務是否正在工作(或停止)? – 2012-02-08 05:23:29

+0

很抱歉,除非您的目標是固定設備,或者您可以訪問目標設備上的平臺,否則您無法完成您想要執行的操作,因爲Android旨在保護最終用戶免受應用程序侵害這不符合用戶的最佳利益。 – bergsell 2012-02-08 06:17:06