gpt4 book ai didi

android - 按下主页按钮后从系统覆盖窗口启动 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:59 24 4
gpt4 key购买 nike

我有一个系统覆盖窗口,一个像 Facebook 的聊天头一样的 float View 。

当用户按下窗口时,将启动一个 Activity 来显示内容。

问题是,如果用户通过按主页按钮离开我的应用程序,则由于系统限制 (https://code.google.com/p/android/issues/detail?id=4536), Activity 无法在 5 秒内启动。 Activity 在 5 秒后出现。

我没有找到关于以前的 SO 问题的任何解决方案。然而,有一个应用程序,Link Bubble ,克服了这个问题。当用户按下 float 气泡 View 时,Activity 总是可以立即弹出。

有人知道怎么做吗?

这是我的系统覆盖窗口的布局参数:

windowParams = new WindowManager.LayoutParams(
width, height,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT);

windowParams.gravity = Gravity.TOP | Gravity.LEFT;
windowParams.x = 0;
windowParams.y = 0;

我得到了 WindowManager

windowManager = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);

并添加 float View

windowManager.addView(MY_VIEW, windowParams);

其中 MY_VIEW 有一个 OnTouchListener,它在用户按下后启动一个 Activity。

最佳答案

此问题的一个可能的解决方法是将 Home/Launcher Intent 过滤器添加到您尝试启动的 Activity。你可以通过添加这个来做到这一点

<intent-filter>

<!-- The following two intent-filters are the key to set homescreen -->
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />


</intent-filter>

执行此操作时,用户基本上可以选择将该应用用作主屏幕。无论何时开始 Activity ,这都不会导致任何延迟。这是此问题最接近的无根解决方案。

更新

另一种可能的解决方案是拥有一个中间助手 Activity ,该 Activity 又具有一个 startActivity()。这将绕过 5 秒延迟。确保中间 Activity 具有透明布局以避免用户混淆。

关于android - 按下主页按钮后从系统覆盖窗口启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29001480/

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