我的目標:在onStop
期間強制用戶交互。在onStop期間要求用戶禁止
示例:啓動一個intent
並且當用戶按下按鈕home
或onStop
被稱爲具有Activity
發射。
我知道這不是好習慣,但如果用戶試圖用home
按鈕離開應用程序,我們需要強制用戶交互。
如果您對如何實現此目標有任何其他想法,請告訴我。
感謝
我的目標:在onStop
期間強制用戶交互。在onStop期間要求用戶禁止
示例:啓動一個intent
並且當用戶按下按鈕home
或onStop
被稱爲具有Activity
發射。
我知道這不是好習慣,但如果用戶試圖用home
按鈕離開應用程序,我們需要強制用戶交互。
如果您對如何實現此目標有任何其他想法,請告訴我。
感謝
你不能這樣做可靠(因爲它是類似惡意軟件的行爲)。用戶將始終能夠從最近的應用程序菜單中殺死您的應用程序。
你可以讓你的應用成爲一個啓動器,如果這是你的用戶忍受的東西,然後它會在每次打到家時啓動,但是沒有辦法阻止某人離開你的應用(可靠)。大量的黑客是可能的,包括Service
s推出am start
(可能或可能不需要root),但同樣,完全可以繞過。
如果您的用戶充分信任您(並聽到您的聲音,他們沒有選擇),您可以請求SYSTEM_ALERT_DIALOG
權限。這使您可以將窗口定位在其他應用程序之上。因此,拼圖的碎片成爲了繼 -
onStart
/onStop
方法被調用。當調用onStop
時,您啓動一個計時器(例如,通過在處理程序上使用postDelayed
)並在調用onStart
時取消它。onStop
而沒有留在您的應用程序中。然後,你可以用合適的標誌顯示一個窗口(這個部分有點低級,因爲你必須直接與WindowManager
交談。Dialog
的源代碼就是一個很好的例子),它會在任何地方顯示出來用戶當前正在查看的應用程序。或者,根據對話框的重要性,考慮將其顯示爲一個通知,一旦按下該對話框,將通過對話框啓動一個活動。當然,你會冒着用戶不理會通知的風險(儘管你可以繼續這樣做以避免這種情況發生)。
殺應用不是問題。沒關係,只需要在按'主頁'時防止它們離開。他們可以離開,只需要首先與「對話/活動」進行交互。這是企業級軟件,不適用於大衆。 – prolink007
那麼,因爲它是企業軟件,所以我要求獲得'SYSTEM_ALERT_WINDOW'權限,並在他們離開應用程序時顯示一個警告對話框(您可以使用onStart註冊並在onStop中註銷的服務輕鬆地執行此操作 - 您會那裏也需要一些暫停)。這是迄今爲止最乾淨的解決方案,並且你不會與Android打得太多。 – Delyan
聽起來很有希望,你能再詳細一點嗎?有關服務和更多的細節?謝謝 – prolink007