作者yrulee (Face the truth.)
看板AndroidDev
标题Re: [问题] Service pause当前执行中的Activity
时间Sun Oct 27 14:07:19 2013
※ 引述《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