当然,增加category种类之后,响应该Intent的组件也必须同时满足action和多个category的标签。...(因为并不是每一个活动都会布满屏幕,例如Toast等出现时,前一个活动就是暂停状态),该状态下的活动仍然是完全存活的,系统也不愿意去回收 停止状态:当一个活动不再处于栈顶位置,并且完全不可见时,系统愿意为这种活动保存相应的状态和变量...Activity的前台生命周期:从调用onResume()到相应的调用onPause()。在此生命期中,活动总是处于运行状态下的,此时的活动是可以和用户进行交互的。 8、如何保存活动的状态? ...则是在onResume之前触发回复状态,至于复写这个方法后onCreate方法是否会被调用。...因为在这种情况下,用户的行为决定了不需要保存Activity的状态。通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。
Android笔记 IDE:Android Studio 文章目录 Android笔记 新建工程 详解项目中的文件资源 详解res目录文件资源 引用res目录下的资源 在活动中使用toast 销毁当前活动...在编程术语中,它是对当前工作单元的行为有任何影响的较大的周边部分。例如所使用的运行环境、环境变量、实例变量、局部变量、其他类的状态、当前环境的状态等等。 ...只有和中的内容同时能够匹配上Intent 中指定的action 和category 时,这个活动才能响应该Intent 。 ...用于指定可以处理的数据类型,允许使用通配符的方式进行指定 只有标签中指定的内容和Intent 中携带的Data 完全一致时,当前活动才能够响应该Intent。...这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。 onRestart()。这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。 ?
当系统长期处于onStopped状态而且此时系统内存紧张时,系统会回收此Activity,而此时,系统会通过onSaveInstanceState()方法将Activity状态保存到Bundle对象中(...()来保存当前Activity的状态。...//当系统配置发上变换时,进行的工作 } Android任务栈 Android的APP通常会有多个Activity,各个Activity之间通过Intent进行连接,系统通过栈结构来保存整个APP的Activity...1443679-e746a7147f743bf0.webp.jpg singleTask,栈内复用模式,检测整个Activity栈中是否存在当前需要启动的Activity,如果存在则将该Activity...List作为存放活动的列表。
bitmap应该绘制的地方 , 初始值为足够大,可以认为看不见 private int mLastMoveY = 1000; //当前bitmap应该绘制的地方 , 初始值为足够大,可以认为看不见 public...事件: 判断是否点击了滑动区域 return handleActionDownEvenet(event); case MotionEvent.ACTION_MOVE:...; case MotionEvent.ACTION_UP: //处理Action_Up事件: 判断是否解锁成功,成功则结束我们的Activity ;否则 ,缓慢回退该图片。...//每隔20ms , 速率为0.6dip/ms , 使当前的图片往后回退一段距离,直到到达最左端 mLastMoveX = x ; //记录手势松开时,当前的坐标位置...应该到达的坐标值 mLastMoveX = mLastMoveX - (int)(BACK_DURATION * VE_HORIZONTAL); invalidate()
接着一个if判断语句,如果为ACTION_DOWN事件,此时还没有找到消费Touch事件的View,所以mFirstTouchTarget为空;如果为ACTION_MOVE和ACTION_UP事件,当前面的...canViewReceivePointerEvents方法 该方法用于判断当前视图的状态,只有其正在显示或正在执行动画,才可以接受触摸事件。 ?...从这两个方法可知,如果当前子View可以消费该ACTION_DOWN事件,并且该ACTION_DOWN事件发生的位置在当前子View的范围内,则继续执行将ACTION_DOWN事件分发给它;否则continue...dispatchTouchEvent方法片段5 如果当前事件是ACTION_CANCLE或ACTION_UP,会调用resetTouchState方法清空Touch状态。...如果View没有消费ACTION_DOWN事件,之后其他的ACTION_MOVE和ACTION_UP等事件都不会传递过来。
标签中我们指明了当前活动可以响应com.example.activitytest.ACTION_START这个action ,而category标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的...只有action 和category中的内容同时能够匹配上Intent中指定的action 和category 时,这个活动才能响应该Intent。...比如说我在自己定义的活动中加入:android:scheme="http" />,那么当其他软件点击了一个网站触发,那么就会询问是否使用自己之前所定义的活动。...只有data标签中指定的内容和Intent中携带的Data完全一致时,当前活动才能够响应该Intent。...系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 销毁状态 当一个活动从返回栈中移除后就变成了销毁状态。
内存泄漏(Memory leak):当一个对象不在使用了,本应该被垃圾回收器(JVM)回收,但是这个对象由于被其他正在使用的对象所持有,造成无法被回收的结果。 ...同时提供getUserVisibleHint()获取Fragment当前是否显示的状态。通过这个状态控制加载,实现懒加载。 5....//静态注册 android:name=".MyReceiver"> action >android...:name="android.intent.action.MY_BROADCAST"/> android:name="android.intent.category.DEFAULT...而有序广播在发出的同一刻,只会有一个广播接收器能够接受,并且自行决定是否传递给下一个。 9. Android消息机制 在Android中线程内部或线程之间进行信息交互时进场会使用消息。
SmartRefreshLayout是个自定义View,它内部的事件分发的重心是处理当前 Group 和子 View 之间的逻辑关系: ·是否需要拦截 touch 事件; ·是否需要将 touch 事件继续分发给子...·作用: 返回当前ACTION_POINTER_DOWN 或者 ACTION_POINTER_UP 对应的手指Index。其他事件返回0。...SmartRefreshLayout是个自定义View,它内部的事件分发的重心是处理当前 Group 和子 View 之间的逻辑关系: ·是否需要拦截 touch 事件; ·是否需要将 touch 事件继续分发给子...当前业务的Header动画,即是基于状态切换及其偏移值 分阶段进行的动画。...根据上图ACTION_MOVE step 2 可以知道,ACTION_MOVE 会判断,当前是否应该进入滑动状态。
具有处理历史数据、诊断问题的追踪以及理解系统、软件的活动等重要作用,在开发或者测试软系统过程中出现了问题,我们首先想到的就是她——logging。...1.为什么要看Monkey日志管理 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在测试过程中是否会发生异常,以及发生的概率,同时还可以获取对应的错误信息...(ACTION_DOWN): 82 // KEYCODE_MENU :Sending Key (ACTION_UP): 82 // KEYCODE_MENU Sleeping for 0...0 milliseconds :Sending Touch (ACTION_DOWN): 0:(838.0,113.0) :Sending Touch (ACTION_UP): 0:(852.82526,101.77225...,会打印出当前执行事件的次数和所花费的时间Monkey finished代表执行完成。
(手指的数量),时间点等信息,用于描述用户当前的具体动作,常见的MotionEvent有下面几种类型: ACTION_DOWN ACTION_UP ACTION_MOVE ACTION_CANCEL 其中...如果view没有设置FLAG_DISALLOW_INTERCEPT,就可以进入onInterceptTouchEvent方法,判断是否应该被自己拦截, ViewGroup的onInterceptTouchEvent...注意:只有当事件类型是ACTION_DOWN或者mFirstTouchTarget不为空时,才会走是否需要拦截事件这一判断,如果事件是ACTION_DOWN的后续事件(如ACTION_MOVE、ACTION_UP...(2) 遍历所有子View,逐个分发事件: 执行遍历分发的条件是:当前事件是ACTION_DOWN、ACTION_POINTER_DOWN或者ACTION_HOVER_MOVE三种类型中的一个(后两种用的比较少...中保存的目标子View中。
的Cursor,它保存我们的记事本data(vnd.google.note)。...标准活动行动 这些是意图为启动活动定义的当前标准动作(通常是通过startActivity(Intent)。)。最重要,也是最常用的,是ACTION_MAIN和 ACTION_EDIT。...串 ACTION_ATTACH_DATA 用于表示某些数据应该附加到其他地方。 串 ACTION_BATTERY_CHANGED 广播动作:这是一个包含充电状态,电平和其他电池信息的粘性广播。...串 ACTION_PASTE 活动操作:在给定的容器中创建一个新的项目,从剪贴板的当前内容初始化它。 串 ACTION_QUICK_CLOCK 当用户点击系统“快速设置”区域中的时钟小部件时发送。...串 EXTRA_STREAM 内容:URI保存与Intent关联的数据流,用于提供ACTION_SEND正在发送的数据。
onPause:表示Activity正在停止(可做一次保存状态停止动画等非耗时操作)。 onStop:表示Activity即将停止(可进行重量级回收工作)。...START_STICKY:如果返回START_STICKY,表示Service运行的进程被Android系统强制杀掉之后,Android系统会将该Service依然设置为started状态(即运行状态)...对于这个问题,我们需要明白以下内容: 一般ACTION_CANCEL和ACTION_UP都作为View一段事件处理的结束。...MotionEvent Android的MotionEvent事件主要有以下几个: ACTION_DOWN 手指刚接触到屏幕 ACTION_MOVE 手指在屏幕上移动 ACTION_UP 手机从屏幕上松开的一瞬间...通常会有很多后台进程在运行,因此它们会保存在 LRU (最近最少使用)列表中,以确保包含用户最近查看的 Activity 的进程最后一个被终止。 空进程 不含任何活动应用组件的进程。
所以保存状态信息是应该在onPause时做,而不是onStop时做。活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。...· onSaveInstanceState :系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。...通常情况下,开发者不需要重写覆盖该方法,在默认的实现中,已经提供了自动保存活动所涉及到的用户界面组件的所有状态信息。 ...Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用。当另外一个Activity被激活,这个将会被暂停。 ...当一个Activity停止后,一个很重要的步骤是要保存数据和当前UI状态。一旦一个Activity退出或关闭了,它将变为待用状态。
activity的名称、图标可以和应用程序的名称、图标不相同 action android:name="android.intent.action.MAIN...只有标签中指定的内容和 Intent中携带的 Data完全一致时,当前活动才能够响应该 Intent。...应用场景:浏览器的书签 singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在 当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity...|screenSize" 活动小技巧 1.知晓当前是在哪一个活动 在你真正进入到企业之后,更有可能的是接手一份别人写的代码,因为你刚进公司就正好有一个新项目启动的概率并不高。...onCreate()方法中调用了 ActivityCollector的 addActivity()方法,表明将当前正在创建的活动添加到活动管理器里。
在 Activity 由于异常情况被终止时,系统会调用 onSaveInstanceState 方法来保存当前 Activity 的状态,该方法调用于 onStop 之前,与 onPause 方法没有时序关系...因为在这种情况下,用户的行为决定了不需要保存Activity的状态。...onSaveInstanceState() 只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。 8. 谈谈横竖屏切换过程中调用的函数 要切记这里活动已经被销毁了。...模式:该模式下,任务栈中可能有多个相同 Activity 实例,因为它只是判断当前启动的 Activity 是否在栈顶。...singleTask 模式:该模式向,任务栈中只会有一个Activity实例,因为它会判断当前启动的Activity是否在当前指定的栈中。
手势事件的类型 在Android中,手势事件被分为两种类型:触摸事件和运动事件。触摸事件包括三种类型:按下(DOWN)、移动(MOVE)和抬起(UP)。...手势事件的分发机制 当用户进行手势操作时,Android系统会将手势事件分发给当前活动的View或ViewGroup。...手势事件的处理流程 当手势事件被分发给当前活动的View或ViewGroup时,它们会按照以下流程进行处理: 如果当前活动的View或ViewGroup没有子View,则直接处理该事件。...} } MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP...,并通过判断菜单的宽度是否大于原宽度的一半来判断菜单是否需要伸缩。
= new Rect(); /** 首次点击的Y坐标. */ private float mTouchDownY; /** 是否关闭ScrollView的滑动. */..., mInitBottom; /** 头部图片拖动时顶部和底部. */ private int mCurrentTop, mCurrentBottom; /** 状态变化时的监听器...doActionMove(event); break; case MotionEvent.ACTION_UP:...// 滑动经过顶部初始位置时,修正Touch down的坐标为当前Touch点的坐标 if (isTop) { isTop = false;...isMoving) { // 初始化content view矩形 if (mContentRect.isEmpty()) { // 保存正常的布局位置
我的答案: onCreate()这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。...我们通常会在这个方法中将一些消耗 CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。...onDestroy()这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。 onRestart()这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。...在前台生存期内,活动总是处于运行状态的,此时的活动是可以和用户进行相互的,我们平时看到和接触最多的也这个状态下的活动。 3.活动在生命周期中最多中能有几种状态?...ACTION_UP: canvas.drawPath(path, paint); path.reset(); //绘制路径 将图片保存到文件中(png格式): FileOutputStream os
; 已经解决一个常见的问题:View的onTouchListener和onTouchEvent的调用关系,相信大家应该已经明白了~let's go;继续往下。 ...10-15行,如果当前View是Disabled状态且是可点击则会消费掉事件(return true);可以忽略,不是我们的重点; 17-21行,如果设置了mTouchDelegate,则会将事件交给代理者处理...-88行:拿到当前触摸的x,y坐标; 91行判断当然触摸点有没有移出我们的View,如果移出了: 1、执行removeTapCallback(); 2、然后判断是否包含PRESSED标识,如果包含,移除长按的检查...的检测;即当前触发时机在DOWN触发不到115ms时,你就已经移出控件外了; 如果115ms后,你才移出控件外,则你的当前mPrivateFlags一定为PRESSED且发送了长按的检测; 就会走上面的...:则将mPrivateFlags取出PRESSED标识,且移除所有在DOWN中设置的检测,长按等; 下面再回个神,回到View的onTouchEvent的ACTION_UP: 3、MotionEvent.ACTION_UP
ACTION_UP|ACTION_POINTER_UP事件的。...我们触摸了屏幕,并引发ACTION_DOWN的事件,然后可能经过一系列的ACTION_MOVE事件,最后是ACTION_UP事件,至ACTION_UP,这整个事件序列算是完成了。...我们前面分析了ACTION_DOWN事件,那么ACTION_MOV和ACTION_UP呢,ACTION_MOV和ACTION_UP的事件分发与ACTION_DOWN并不完全相同。...事件不符合第③步时进入获取子View并循环派发的条件,当是ACTION_MOVE|ACTION_UP事件会直接来到第④步,判断当前ViewGroup的mFirstTouchTarget 是否为空,由上图可知不为空...首先重置状态,这是因为一个新的事件序列开始了,重置状态中比较重要的就是这个mFirstTouchTarget了,mFirstTouchTarget作为ViewGroup的成员变量记录当前ViewGroup
领取专属 10元无门槛券
手把手带您无忧上云