仿微信通知效果的实现

经过调研发现,有两种方法可以实现这种效果。

  1. Application 中 注册ActivityLifecycleCallbacks,获取到当前在前台的 activity ,通过 activity.getWindow().getDecorView() 获取到 DecorView,并使用 addView() & removeView() 可以实现 View 的添加与移除(View 的内容可以自定义)。这种方法与 Application 有较高耦合。当应用不在前台的时候不会出现通知。

2.使用 WindowManager。同样的 WindowManager 有 addView(),updateViewLayout 和 removeView() 方法,可以做到添加 与移除 View。这种方法需要申请悬浮窗的权限,并且 WindowManager.LayoutParams 需要根据 SDK 的版本去设置各个参数。不管应用是否在前台,只要应用还存活,通知就可以出现。

你可能感兴趣的:(仿微信通知效果的实现)