![]() |
1
42
更新 【2015年8月】:根据 JM Lord ,此答案可能不适用于棒棒糖及以上设备。见 Alternative to getRunningTasks in Android L 虽然,这是一个老问题,但大多数答案在api级别17及以上的版本中对我都不起作用。我在回答最后对我有用的事情。我试过很多方法,但没有一个像今天这样有效。我试着回答 Call method when home button pressed on android , Detect home button press in android 和 Overriding the Home button - how do I get rid of the choice? . 关键是家就像一个紧急逃生按钮。所以你不能覆盖它,但可以在某些方面检测到它。 一些我试过的(包括上面的答案)和 没有工作 是:
最后 后续工作 为了我: 看到 How to check current running applications in Android? 你可以说,如果你的任务是最近长时间按home按钮显示的,那么它被发送到后台。
所以,在你的
功能检查您的应用程序是否是最近发送到后台的应用程序:
感谢@idish指出不要忘记在您的清单中包含以下权限:
我不确定这是否有什么坏处,但这对我很有效。希望有一天它能帮助别人。
P.S:如果您在使用
|
|
2
12
您可以通过activity.onUserLeaveHint()检测到主按钮按下。此方法在两种情况下调用:用户按Home键和启动新活动时。一定要把两者区别开来。 |
![]() |
3
9
没有正式的方式可以得到“home”按键的通知。但是有一个非常简单的方法可以让你的应用程序区分“主页”按键和任何其他会导致活动停止的操作。 对于需要对“主页”按键执行某些操作的每个类,请将它们从包含以下内容的活动扩展:
编辑 您还需要从包含此内容的父类扩展片段。这是因为片段将提供一个额外的路径,在应用程序中以预期的而非“主”方式切换活动。
编辑2 我几乎认为这不是解决这个问题的最简单的方法…您还需要将onconfigurationchange=“orientation”添加到使用此方法的所有活动中。然后您可以添加:
编辑3 乌尔赫
|
![]() |
4
8
你不能以任何方式捕获主事件并截获它。当用户按Home键时,将始终带到其设备的主屏幕。 如果您需要知道何时将活动发送到后台,比如从用户按Home键或Back键,我将实现onstop()方法。 |
|
5
7
在活动中使用onuserleavehint()方法
http://developer.android.com/reference/android/app/Activity.html#onUserLeaveHint() |
![]() |
6
4
它可以完成(至少正常运行2.3)。在Android版本2.3.5上测试,非根HTC Wildfire-S。捕获/禁用所有控制键的代码片段:
|
![]() |
7
3
您可以编写广播侦听器并将筛选器设置为
从广播接收器启动UR活动/通知活动。 |
![]() |
8
2
我根据@springfeed的建议找到了这个解决方案。这个问题非常普遍,请注意这个特殊的解决方案将:
这个密码在我的基地里
由于某些方法也可能使用应用程序上下文来启动意图,因此我定义了一个由应用程序类持有的ContextWrapper来切换布尔值(请注意,我可以通过该基类静态访问自己应用程序的最顶层活动)。
如果有必要的话,人们可能还想覆盖startactivities(…)。 希望这有帮助:) |
![]() |
9
-1
我不知道其他参数是如何适应的,甚至不知道如何实现上面的功能,但是这些信息都在keylistner中。 documentation . 但他们也提到 another page 家里的钥匙总是放在家里,你不能改变。所以,如果你计划进行某种“你确定你想退出”的对话,那就行不通了。 |
![]() |
10
-1
|
|
11
-8
|
![]() |
Murilo · Jetpack编写导航栏项目图标 4 月前 |
![]() |
KolaYAndr · 活动RESULT_OK似乎从未发生过 5 月前 |
![]() |
psycho_pat · Android应用程序中的权限 5 月前 |
|
FarazFiroz · 如何将argb转换为描述性文本颜色 5 月前 |
![]() |
Daniel · Unity Android游戏支持的设备数量太少 5 月前 |