gpt4 book ai didi

android - 在显示 UI 的 android 服务中检测 'home button pressed' 事件(类似于 facebook 聊天头)

转载 作者:IT老高 更新时间:2023-10-28 22:03:22 26 4
gpt4 key购买 nike

在作为 facebook messenger 应用程序一部分的 facebook 聊天头中,我注意到以下行为:据我所知,聊天头本身和打开的聊天屏幕都是服务的一部分。不涉及任何 Activity 。

我如何确定?在打开的聊天屏幕上按主页后,它会最小化回聊天头,我可以立即重新打开聊天屏幕。如果聊天屏幕是一个 Activity ,那么在按下主页按钮后通过 startActivity(intent) 重新打开 Activity 会延迟 Activity 的启动,如下所示: Starting an activity from a service after HOME button pressed without the 5 seconds delay

这里:Reason for 5 sec delay to show an activity on pressing the home button?

在我的服务 onCreate 方法中,我使用以下代码显示来自服务的 UI:

public class ServiceTest extends Service {
...
@Override
public void onCreate() {
super.onCreate();

windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);

windowManager.addView(someView, params);
}
....
}

有谁知道如何直接从显示 UI 的服务接收“按下主页按钮”事件?当用户按下主页按钮时,我想最小化我的 View (类似于 facebook 聊天头)。

最佳答案

在对这个问题进行了自己的研究之后,我得出了以下结论:

Facebook 通过提供标志 TYPE_SYSTEM_OVERLAY 来“拦截”导航按钮属性。看this post @jawsware 提供的答案

做他建议不要做的事——会导致控制导航按钮的“影响”

使用此标志可将焦点集中在您的叠加层上,并从后面的 Activity 中获取焦点。

使用 onFocusChangedListener View 回调或 OnKey listener他们通过关闭覆盖的全屏模式对此使用react。

这也解释了他们对 3 个导航按钮的 react - 主页/返回/最近的任务

关于android - 在显示 UI 的 android 服务中检测 'home button pressed' 事件(类似于 facebook 聊天头),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com