android接口回调

GitHub标星4.6K+!手写一款基于MVVM模式开发框架,完美实现事件与数据源绑定!

删除回忆录丶 提交于 2020-04-08 14:03:26
前言 目前,Android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架。从此告别findViewById(),告别setText(),告别setOnClickListener()... 框架流程 框架特点 快速开发 只需要写项目的业务逻辑,不用再去关心网络请求、权限申请、View的生命周期等问题,撸起袖子就是干。 维护方便 MVVM开发模式,低耦合,逻辑分明。Model层负责将请求的数据交给ViewModel;ViewModel层负责将请求到的数据做业务逻辑处理,最后交给View层去展示,与View一一对应;View层只负责界面绘制刷新,不处理业务逻辑,非常适合分配独立模块开发。 流行框架 retrofit + okhttp + rxJava 负责网络请求; gson 负责解析json数据; glide 负责加载图片; rxlifecycle 负责管理view的生命周期;与网络请求共存亡; rxbinding 结合databinding扩展UI事件;

Android学习之Fragment解析

青春壹個敷衍的年華 提交于 2020-03-17 08:03:11
1.定义 Fragment中文解释是碎片的意思,主要用在大屏幕设备上,例如平板电脑上,支持更加动态和灵活的UI设计。 Fragment在你的应用中相当于是一个模块化和可重用的组件,因为Fragment定义了它自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中。 2.特点 (1)Fragment可以作为Activity界面的一部分组成出现; (2)可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用; (3)在Activity运行过程中,可以添加、移除或者替换Fragment; (4)Fragment可以响应自己的输入事件,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响。 3.生命周期 Fragment必须是依存于Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。 生命周期中涉及的方法如上图所示,具体触发条件如下所述。 onAttach() 当Fragment被添加到Activity时候会回调这个方法,并且只调用一次; onCreate() 创建Fragment时会回调,只会调用一次; onActivityCreated() 当Fragment所在的Activity启动完成后调用

对于java接口回调的理解

丶灬走出姿态 提交于 2020-02-28 00:32:59
2020.2.25 第一次写博客,有很多不足之处,还请多多包涵。 在Android中接口的回调是很常见的。这篇文章也是本人对其的理解,也算是一种学习记录。废话不多说,正文开始。 1.回调 回调(外文名Callback),是指在价格上涨趋势中,价格由于上涨速度太快,受到卖方打压而暂时回落的现象。回调幅度小于上涨幅度,回调后将恢复上涨趋势。 当然这并不是我今天要讲的回调。软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。这篇文章只进行简单的理解。我看完回调的概念也是马马虎虎,是懂非懂。但也可以形象化的理解。 同步回调 同步回调就像是老师叫小明交作业,小明就去写作业,而老师要等小明把作业叫上来才能批改作业,这里老师不用去管小明的作业是否正确。 public interface Callback { void PutOn ( ) ; } 老师的类 punlic class Teacher implements Callback { public Teacher ( ) { System . out . println ( "小明快交作业" ) ; } pubic void get ( ) { System . out . println ( "我收到了" ) ; } } 小明的类 public class Xiaoming { private

Android中View和ViewGroup介绍

旧时模样 提交于 2020-02-12 02:33:46
1. 概念 Android 中的View与我们以前理解的“视图”不同。在 Android 中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作 系统 中的window。 ViewGroup是View的子类,所以它也具有View的特性,但它主要用来充当View的容器,将其中的View视作自己的孩子,对它的子View进行管理,当然它的孩子也可以是ViewGroup类型。 ViewGroup(树根)和它的孩子们(View和ViewGroup)以树形结构形成了一个层次结构,View类有接受和处理消息的功能,android系统所产生的消息会在这些ViewGroup和 View之间传递。 2. Android的窗口系统 Android的窗口系统是Client/Server模式的,我在这里只讲窗口系统的客户端(图1)。 我们所提到的概念:View,ViewGroup,DecorView,ViewRoot都是存在于窗口系统的Client端。 Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View可以称之为主View,DecorView会缺省的attach到Activity的主窗口中。 ViewRoot建立了主View(DecorView)与窗口系统Server端的通讯桥梁,

接口回调

大兔子大兔子 提交于 2020-01-29 03:33:13
接口回调 概念:假设老师叫学生做作业,学生做完作业以后要通知老师,这就是一个回调 使用场景:例如Android中的点击事件,Activity向Fragment传递数据 先定义一个用于回调的接口: public interface CallBack { public void execute ( ) ; } 学生类: public class Student { private CallBack callBack ; //设置回调接口,老师那边要调用此方法实现该接口 public void setCallBack ( CallBack callBack ) { this . callBack = callBack ; } //做作业,做完调用callBack的方法通知老师 public void doSome ( ) { System . out . println ( "学生在作业...." ) ; callBack . execute ( ) ; } } 老师类: public class Teacher { public static void main ( String [ ] args ) { Student student = new Student ( ) ; //学生完成作业后通知老师(回调结果) student . setCallBack ( new

介绍activity文档翻译

♀尐吖头ヾ 提交于 2020-01-28 08:53:39
原文链接: https://developer.android.google.cn/guide/components/activities/intro-activitiesSS 一, 对activit的介绍 activity类是很重要的组件在安卓app中,并且activit被启动的方式和组合方式是平台应用模型的基本部分。 不同于其他编程模式,启动需要一个main方法,安卓系统在activity实例中启动代码通过调用生命周期中的特定方法。 这个文档介绍了activity的概念,并且提供了一些指导,关于如何去用他们。 关于一些额外的信息如何过呢更好的构建你的app,可以看Guide to app architecture 二,activity的概念 移动app体验不同于桌面程序,移动app和用户交互的接口不止一个。不一定在什么地方,什么时间启动。 例如,如果你从主屏幕打开一个email app,你也许会看到一个email是列表。通过对比, 如果你使用一个社交媒体app打开你的emailapp ,你可能直接看到email app的屏幕去写一封电子邮件。 activity类被设计为更适合这种模式。当一个app调用另一个app时,app调用的是另一个app的activity, 而不是调用另一个app作为一个整体。在这种方式下,activity作为app的交互点和其他用户

穿山甲sdk激励视频广告关闭按钮引发的bug排查及解决

折月煮酒 提交于 2020-01-19 10:04:47
项目中接入了穿山甲广告,其中包括图文广告和视频广告,后期发现一个偶现的问题,就是看完激励视频广告后,点击视频页面的关闭按钮,此时回到了app源生页面,UI卡住了,本来看完视频有个加分操作,现在没了。排查了代码,看看是不是自己的代码有漏洞,看了半天也没发现,然后就想,是不是穿山甲sdk的视频有问题,点击关闭按钮没有给客户端回调?为了验证这个问题,我写了个点击事件,请求激励视频并且播放,在穿山甲的回调地方添加log日志,看看是否有打印日志。由于bug是偶现的,那就是说需要大量的尝试,如果向上面的那样操作,点击一下请求广告,视频播放结束显示关闭按钮,再点击一下,比较麻烦,并且把一个人给定死在这里,需要不停的操作,能不能省点力? 第一步,我把请求广告的点击事件,放到了 Activity 的 onResume() 方法中,这样,刚进入该页面,或者视频看完点击关闭按钮后又回到该页面,都会触发激励视频广告,为了体验更好一点,我在 onResume() 方法中延迟了1秒去请求广告,并在请求广告的时候添加请求log日志; 第二步,我想在激励视频结束时也打印一个log日志,由于激励视频页面是SDK内部的Activity,没办法直接监听,我就从 Application 入手,它有个注册方法 registerActivityLifecycleCallbacks

新支付宝微信及个人免签支付系统中-短信信息自动回调源码监测APP 实时自动回调对接集成!

微笑、不失礼 提交于 2020-01-16 16:10:30
新支付宝微信及个人免签支付系统中-短信信息自动回调源码监测APP 实时自动回调对接集成! 1.使用设置方法:回调地址只需要填写自己写的网址的POST接口即可, 2.功能及流程说明:监测支付宝&微信收款信息提示,检测收款信息短信信息!收到后自动向预先设置好的请求地址去做自动回调。 监控各类自己的银行发送过来的短信,并实时发送回调,对接免签支付系统,应用与微信,支付宝转银行卡、收钱吧、农银信等接口监控回调。 开发工具及编程语言:Android Studio,Eclipse ,JAVA android APP开发。系统编程语言:PHP+MYSQL数据库。 该监测APP软件,可以监测任何应用的短信信息内容,及进行自动回调和对接集成。实现由人工手动核对操作,自动处理的转变。节省人力时间和快速高效。是自动化办公的首选。 DEMO网址:http://kw.bjx-tech.com/ 如有兴趣,欢迎添加QQ:1918003003. 一起探讨研究!。 来源: https://www.cnblogs.com/QQ1918003003/p/12201498.html

android回调函数总结

China☆狼群 提交于 2020-01-01 01:21:51
本文转载自: https://www.cnblogs.com/elleniou/archive/2012/05/21/2511071.html 作者:elleniou 转载请注明该声明。 回调函数就是那些自己写的,但是不是自己来调,而是给别人来掉的函数。 消息响应函数就可以看成是回调函数,因为是让系统在合适的时候去调用。这不过消息响应函数就是为了处理消息的, 所以就拿出来单做一类了。其实本质上就是回调函数。 但是回调函数不是只有消息响应函数一种,比如在内核编程中,驱动程序就要提供一些回调函数, 当一个设备的数据读写完成后,让系统调用这些回调函数来执行一些后续工作。 回调函数赋予程序员这样一种能力,让自己编写的代码能够跳出正常的程序控制流, 适应具体的运行环境在正确的时间执行。 回调函数总结 别人给回调的定义: 所谓回调,就是对象A调用另一对象B中的某个方法b,然后B又在某个时候反过来调用A中的某个函数c,对于B来说,这个c便叫做回调函数。 回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口. 我的理解, 和一般的类之间的组合类似。就只是A对象调用B对象的一个方法b。只不过方法b是抽象的,是后期绑定的。 java回调代码。 1,定义回调接口。 package com.smart; /** * 定义回调接口 */ public interface

面试常问知识点,Fragment+Activity+service等等

白昼怎懂夜的黑 提交于 2019-12-31 00:03:17
每一次去面试就是一次对自我知识的总结和审核,如果你想拿到大厂的offer.成功的通过一面二面三面四面,那么我分享的面试学习路线你可以来参考一下(PDF文档版见如下) 那么面试中最常问的小知识点不懂的透彻怕是不行了 ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS 1 、四大组件是什么 1)Activity: 用户可操作的可视化界面,为用户提供一个完成操作指令的窗口。一个 Activity通常是一个单独的屏幕,Activity通过Intent来进行通信。Android中会维持一个Activity Stack,当一个新 Activity 创建时,它就会放到栈顶,这个 Activity 就处于运行状态。 2)Service: 服务,运行在手机后台,适合执行不需和用户交互且还需长期运行的任务。 3)ContentProvider: 内容提供者,使一个应用程序的指定数据集提供给其他应用程序,其他应用可通过 ContentResolver 类从该内容提供者中获取或存入数据。它提供了一种跨进程数据共享的方式,当数据被修改后, ContentResolver 接口的 notifyChange 函数通知那些注册监控特定 URI 的 ContentObserver 对象。 如 果