我正在尝试实现一个浮动的可拖动视图,该视图将显示在单个应用程序的所有活动中
这意味着用户将能够在屏幕上拖动屏幕的30%高度和50%宽度的视图,该视图将绘制在应用程序中的任何活动上方。当用户切换到同一应用程序中的另一个活动时,浮动视图应保持在同一位置。
我知道使用SYSTEM_ALERT_WINDOW
权限是可能的,我想避免这种情况,因为这个视图只需要在应用程序中显示,我不希望用户被要求批准这种权限。
另一点很重要:
此视图将成为SDK的一部分
这意味着我不对应用程序的活动/片段/布局负责
我可以拥有/假设:
- 托管应用程序将子类化的基本应用程序
- 所有根布局都具有某种标识符并且具有某种特定类型(例如,所有根布局是
RelativeLayout
并且具有idroot_layout
(
4-6年前提出的类似问题,0个令人满意的答案:
- 整个应用程序的浮动视图
- Android活动浮动视图
我可以建议您使用在后台运行的服务来保存特定的视图。服务的使用将满足您的需求,即您希望特定视图在用户选择手动禁用或关闭之前保持可操作性。您需要使用异步服务,即IntentService,这样它就不会影响您的ui主线程(不要忘记活动的生命周期和层次结构(。
请参阅以下链接。1-链接到谷歌开发者https://developer.android.com/training/run-background-service/create-service
2-链接到此类实现的示例https://medium.com/exploring-code/create-chat-heads-like-facebook-messenger-32f7f1a62064