美文网首页
仿微信悬浮窗的关键技术点

仿微信悬浮窗的关键技术点

作者: 雨来 | 来源:发表于2021-09-06 22:10 被阅读0次

    下面的技术点已应用到实际项目中

    1、如何显示悬浮窗

    推荐一个开源库:
    https://github.com/princekin-f/EasyFloat
    通过上面的开源库 悬浮窗已经可以显示了

    但是下面确是值得思考的问题

    1、悬浮窗什么时候显示就像微信语音通话中 我们点击一下那个缩小按钮 当前通过界面没有了 只显示了一个悬浮窗口 我们通过查看 栈中的Activity 发现在 微信 语音界面是被关闭掉了的,但我项目中的业务 如果语音界面被destory 那么这个通话就会被结束掉,所以是行不通过,猜想微信应该有个什么东西在后台一直保持这个通话。

    2、既然 destory当前通话界面行不通(因为我不知道微信语音是如何保持这个通话的)那么我在想 我拿到当前页面的window 重新设置它的宽高、和透明度 宽高设置1个像素 试了一下 是显示的很小 但下面的页面还是不能操作 因为当前通话页面 还是在盖在上面的。

    3、怎么办呢? 百度一下 如何让一个Activity切到后台?如何让一个Activity从后台切回前台。


    image.png

    2、如何控制被操作的Activity显示和隐藏

    1、被操作Activity 的launchMode 设置为 singleTask 单独一个任务栈
    2、被操作的Activity 切到后台代码

    moveTaskToBack(true)
    

    3、切回到前台

     Intent intent = new Intent(TRTCVideoCallActivity.this.getApplicationContext(),TRTCVideoCallActivity.class);
                                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
                                            );
                                            getApplication().startActivity(intent);//getApplication()不可以去掉否则没用
    

    参考代码:
    https://www.cnblogs.com/renjiemei1225/p/7457985.html

    image.png

    相关文章

      网友评论

          本文标题:仿微信悬浮窗的关键技术点

          本文链接:https://www.haomeiwen.com/subject/qlvywltx.html