我想编写一个应用程序以根据哪个应用程序具有焦点自动开启和关闭自动旋转。为了这个目的,我目前在屏幕上有一个自动旋转的切换按钮(我讨厌自动旋转,但发现它适用于少数应用程序),但我经常忘记在启动相关应用程序时激活它,或者当我用这个应用程序完成(更不用说手动切换它是一件痛苦的事情)。我无法弄清楚当关注的应用程序发生变化时如何接收通知,我需要接收这些通知才能自动执行切换。只要焦点发生变化,是否有任何方法可以得到通知?如何找出哪个应用程序具有焦点
-Harry
我想编写一个应用程序以根据哪个应用程序具有焦点自动开启和关闭自动旋转。为了这个目的,我目前在屏幕上有一个自动旋转的切换按钮(我讨厌自动旋转,但发现它适用于少数应用程序),但我经常忘记在启动相关应用程序时激活它,或者当我用这个应用程序完成(更不用说手动切换它是一件痛苦的事情)。我无法弄清楚当关注的应用程序发生变化时如何接收通知,我需要接收这些通知才能自动执行切换。只要焦点发生变化,是否有任何方法可以得到通知?如何找出哪个应用程序具有焦点
-Harry
这听起来非常困难。你的后台服务将持续不断地进行轮询,以查看谁是活跃的,并且在android需要更多内存时可能会在你不知情的情况下被杀死。这会更令人沮丧。
也许它会更容易绑定一个简单的应用程序,切换功能,例如,长按一下搜索按钮..这样你就不必退出到主要切换它,然后回去。
可能是一个更简单的方法。
尝试此方法 http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged(boolean) 当用户离开您的应用程序时,布尔参数将返回false,并在返回时返回true。 我不知道它是否会告诉你什么时候另一个应用程序切换到另一个应用程序(例如,你是活动A,用户从B(不是你)切换到C(也不是你)),但它告诉你什么时候你的应用程序收益/失去重点。
投票不起作用,因为投票之间会有延迟。我试图找到一种方法来在焦点发生变化时接收广播意图。 – HarryFromMarydelDE 2011-05-12 22:50:32
那么,我的观点是,也许你应该看看另一种方式来做到这一点。有一个焦点更改监听器,但它适用于您自己的应用程序,不适用于所有应用程序。 – cidermonkey 2011-05-12 23:57:55