当前位置: 首页 > news >正文

公司如何做网站宣传网站怎样制作吸引人

公司如何做网站宣传,网站怎样制作吸引人,在线平台教育网站开发,回收手表网站版权声明#xff1a;本文为xing_star原创文章#xff0c;转载请注明出处#xff01; 本文同步自http://javaexception.com/archives/113 Android开发利器之ActivityTracker 今天在群里面划水#xff0c;有个小伙伴问到一个问题#xff0c;”刚进公司 清单文件的activity 较…版权声明本文为xing_star原创文章转载请注明出处 本文同步自http://javaexception.com/archives/113 Android开发利器之ActivityTracker 今天在群里面划水有个小伙伴问到一个问题”刚进公司 清单文件的activity 较多 不便于查找和定位有什么办法解决”。这个问题我自认为还是很有经验的向对方推荐了一个ActivityTracker软件这个软件的作用嘛就是开启了一个悬浮窗会显示当前页面的Activity的名称无论是系统App还是新接手的公司App通过展示的Activity类名能够很容易的找到这块业务逻辑的代码所在。这个小工具真的很可以提高开发效率所以准备记录下来这个东西也是用了好几年了不是今天有人问到也不会有想法特意写篇文章记录下ActivityTracker。 源码分析 这个小工具在Github上是开源的地址是https://github.com/fashare2015/ActivityTracker也有幸提过pr代码量上就四五个类很容易看懂的。本质上采用的是Android的AccessibilityService这个辅助服务机制时刻检测屏幕对应的Activity同时在Service中用WindowManager显示悬浮view。 具体到代码层面当用户开启辅助服务后TrackerService被激活onAccessibilityEvent方法就会不断的被执行 Override public void onAccessibilityEvent(AccessibilityEvent event) {Log.d(TAG, onAccessibilityEvent: event.getPackageName());if (event.getEventType() AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {CharSequence packageName event.getPackageName();CharSequence className event.getClassName();if (!TextUtils.isEmpty(packageName) !TextUtils.isEmpty(className)) {EventBus.getDefault().post(new ActivityChangedEvent(event.getPackageName().toString(),event.getClassName().toString()));}} } 当onAcessibilityEvent被触发后满足TYPE_WINDOW_STATE_CHANGED用来表示Window窗口发生了变化条件后通过EventBus将当前页面的包名Activity类名传递到FloatingView中接着就在FloatingView中刷新对应的包名类名值。 public void onEventMainThread(TrackerService.ActivityChangedEvent event){Log.d(TAG, event: event.getPackageName() : event.getClassName());String packageName event.getPackageName(),className event.getClassName();mTvPackageName.setText(packageName);mTvClassName.setText(className.startsWith(packageName)?className.substring(packageName.length()):className);Log.d(TAG, event: event.getPackageName() : event.getClassName() , end invoked!); } 这块是核心逻辑。 FloatingView是如何在Service中显示隐藏的呢可以看到TrackerService里面有个成员变量mTrackerWindowManager他用来控制显示隐藏FloatingView。 TrackerWindowManager的静态代码块设置了悬浮view的默认显示位置以及可以接受手势触摸 static {WindowManager.LayoutParams params new WindowManager.LayoutParams();params.x 0;params.y 0;params.width WindowManager.LayoutParams.WRAP_CONTENT;params.height WindowManager.LayoutParams.WRAP_CONTENT;params.gravity Gravity.LEFT | Gravity.TOP;params.type WindowManager.LayoutParams.TYPE_PHONE;params.format PixelFormat.RGBA_8888;params.flags WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;LAYOUT_PARAMS params; } public void addView() {if(mFloatingView null){mFloatingView new FloatingView(mContext);mFloatingView.setLayoutParams(LAYOUT_PARAMS);mWindowManager.addView(mFloatingView, LAYOUT_PARAMS);} } addView方法就是将FloatingView添加到Service的WindowManager中并显示出来这块需要对WindowManager有所理解了解其用法。 在我们真正使用的过程中会发现ActivityTracker明明Activity页面已经finish了但是悬浮view依旧显示在当前的屏幕上控制悬浮view显示的是WindowManager而这个windowManager在Service中存活着。所以基本上就会一直显示着很少会被系统杀死。 分析完后发现这个小工具并不难主要用到的就是AccessibilityServiceWindowManager添加FloatingView,以及EventBus。相信大家都可以实现这个小工具。 项目地址 https://github.com/fashare2015/ActivityTracker转载于:https://www.cnblogs.com/xing-star/p/10962004.html
http://www.pierceye.com/news/353897/

相关文章:

  • 网站行业认证怎么做安卓开发技术
  • 泉州城乡住房建设厅网站网站运营方案ppt
  • 免费做网站wxp114五种常用的网站推广方法
  • 简单的网站建设找哪个公司新网站seo技术
  • 电子网址怎么创建下载优化大师app
  • 网站上传服务器教程wordpress 开启多用户
  • 做网站的公司重庆互联网营销方式
  • 在线探测网站开发语言东莞人才市场现场招聘会地址
  • 检测网站是否被挂黑链seo网站营销推广
  • 当今网站开发技术的现状自己做的网站怎么上排行榜
  • 外贸没有公司 如何做企业网站?成都市住房和城乡建设局官网查询
  • 公证网站建设管理无锡百度正规推广
  • 免费海外网站建设自学设计软件的免费网站
  • 个人姓名最多备案多少个网站外贸网站制作公司
  • 上海市建设安全协会官方网站上海人才网官网公示
  • 原创文章网站wordpress注册页面修改密码
  • 山东省建设注册执业中心网站博物馆网站做的最好的
  • 做论坛网站能赚钱吗山东济南网站建设公司
  • 建网站海外英文建站
  • 学网站开发网页制作苏州模板建站哪家好
  • 音乐网站建设怎么上传音乐易点租电脑租赁官网
  • 做足球网站前景一个网站源码值多少钱
  • 成都网站排名优化公司上海创意网站建设
  • 贵阳市住房城乡建设局八大员网站wordpress 输出 文章时间
  • 那个装修公司的网站做的好想创业去哪里找项目
  • 公选课网页制作与网站建设网页游戏平台十大排名
  • 无锡锡牛网站建设网站倒计时
  • 南通做外贸网站网站建设培训四川
  • 微小店适合卖做分类网站吗手机开发者网站
  • 广州建企业网站网页设计是啥意思