看板 AndroidDev 關於我們 聯絡資訊
※ 引述《genius091612 (Yomao)》之銘言: : 請問一個Service有辦法pause當前執行中的Activity嗎? : 我在寫個遊戲的外掛,外掛當然是以service存在,並在遊戲執行時背景運作 : 其中因為截圖 + 運算太慢,我打算pause遊戲,等該做的都做好後再resume : 請問這可以辦到嗎? : 因為android都有個多工鍵,她可以達到暫停程式的功能,所以猜測這功能可能可以達到 : 但搜尋時不知道該怎麼下關鍵字,都找到些onPause、onResume什麼的,只能靠發問了, : 謝謝 建議不要直接從Service裡直接啟動Activity,這不是好的做法,因為user可能已經離開你的app。 正規的作法,是使用Binder作雙向通訊,由 Activity 來決定要不要pause: 1. 用 AIDL 定義 Activity 與 Service 之間的介面 2. 在 AIDL 中加入 register callback 的定義 3. 在 Activity 裡實作callback 介面 (看你如何實作 pause ) 4. 建立 ServiceConnection 後,把 callback 傳進去 5. 之後只要 ServiceConnection 存在,就可以呼叫callback物件,達到 pause 的效果。 起動另一個Activity就能把原來的Activity pause住,但其實在原來的Activity也能達成。 因為onPause()的意義是為了 "把UI暫時讓給別人" ,如果沒有其他 Activity 需要啟動,原來的 Activity 就沒有 pause 的必要。 重點在於把onPause()的邏輯抽出來,直接取用之即可。這就看你如何實作了。 http://developer.android.com/guide/components/aidl.html -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.78.158.40