首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android面试题总结【完整详细版本”一”】(含答案)

当我们的Activity上弹出Dialog对话框时,程序的生命周期依然是onCreate() —> onStart() —> onResume(),在弹出Dialog的时候并没有onPause()和onStop...当我们在A中激活B时,A调用onPause()方法,此时B出现在屏幕时,B调用onCreate()、onStart()、onResume()。...如果一个Service被多次执行startService(),它的onCreate()方法只会调用一次,也就是说该Service只会创建一个实例,而它的onStartCommand()将会被调用多次(对应调用...采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的 onCreate()方法,接着调用onBind()方法。...,我收到的指令是:"+getResultData()); } } 启动模式: 1、standard:标准化启动模式 每启动一个Activity,都会重新创建Activity

1.1K20

Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

对于startActivity函数的调用很多文章都有介绍,可以简单参考下老罗的博客Android应用程序内部启动Activity过程(startActivity)的源代码分析,比如在Activity A...Activity跳转或者返回主界面时,onSaveInstanceState是一定会调用的,但是OnRestoreInstanceState却不会,它只有Activity或者App被异常杀死,走恢复流程的时候才会被调用...那么正常的创建为什么没调用呢?...下面结合具体的系统View控件来分析一下这两个函数的具体应用:比如ViewPager与FragmentTabHost,这两个空间是主界面最常用的控件,内部对后台杀死做了兼容,这也是为什么被杀死后,Viewpager...在恢复后,能自动定位到上次浏览的位置。

3.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ViewPager快速实现引导页

    onPageScrolled(int position, float positionOffset, int positionOffsetPixels) :该方法在滑动过程中将一直被调用,该方法的参数说明如下...notifyDataSetChanged ():该方法由应用程序在适配器数据改变时主动调用。...setPrimaryItem (ViewGroup container, int position, Object object):调用该方法去通知当前适配器的哪一项被考虑为“primary”,它是当前展示给用户的页面...继续使用WidgetSample工程的advancedviewsample模块,在src/main/res/layout/目录下创建viewpager_layout.xml文件,在其中填充如下代码片段:...不知道你是否发现,这是不是就是我们常见的应用程序启动时的引导页,只是示例相对来说比较简单,没有页面指示引导,这一块后续学习再逐步来优化完成。

    1.4K70

    之解析练习RadioButton+Fragment+viewpager布局架构

    的程序框架对我来说是种信仰,公司里大概有15个程序是用的我写信仰架构!...另外要说一点的是ViewPager的缓存机制: ViewPager会缓存当前页,前一页,以及后一页,比如有1,2,3,4这四个页面: 当我们处于第一页:缓存1,2 ——> 处于第二页:缓存 1,2...这是为了确保 在finishUpdate(viewGroup)返回时视图能够被移除。...或其子类的实例 public void setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener listener)注册一个当该单选按钮组中的单选按钮勾选状态发生改变时所要调用的回调函数...listener)注册一个当子内容添加到该视图或者从该视图中移除时所要调用的回调函数 listener 当层次结构发生改变时所要调用的回调函数 ---- 三.使用效果 ?

    1.3K40

    【Android】Fragment懒加载和ViewPager的坑

    懒加载 懒加载意思也就是当需要的时候才会去加载 那么,为什么Fragment需要懒加载呢,一般我们都会在onCreate()或者onCreateView()里去启动一些数据加载操作,比如从本地加载或者从服务器加载...Fragment时还会再调用一次。...从 “可见 -> 不可见” 时进行一些操作的话,比如取消加载控件显示 这边再提一下,setUserVisibleHint()可能会在Fragment的生命周期之外被调用,也就是可能在view创建前就被调用...,也可能在destroyView后被调用,所以如果涉及到一些控件的操作的话,可能会报 null 异常,因为控件还没初始化,或者已经摧毁了。...因为ViewPager里对Fragment的回收和创建时,如果Fragment已经创建过了,那么只会调用 onCreateView() -> onDestroyView() 生命函数,onCreate(

    2K20

    Android Scroller完全解析,关于Scroller你所需知道的一切

    我写博客的题材很多时候取决于平时大家问的问题,最近一段时间有不少朋友都问到ViewPager是怎么实现的。...那ViewPager相信每个人都再熟悉不过了,因此它实在是太常用了,我们可以借助ViewPager来轻松完成页面之间的滑动切换效果,但是如果问到它是如何实现的话,我感觉大部分人还是比较陌生的, 为此我也是做了一番功课...那有的朋友可能会问了,为什么都是调用的LinearLayout中的scroll方法?...可以看到,当我们点击scrollTo按钮时,两个按钮会一起向右下方滚动,因为我们传入的参数是-60和-100,因此向右下方移动是正确的。...在整个后续的平滑滚动过程中,computeScroll()方法是会一直被调用的,因此我们需要不断调用Scroller的computeScrollOffset()方法来进行判断滚动操作是否已经完成了,如果还没完成的话

    1.6K60

    《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

    最后,在活动被销毁之前,系统会调用onDestroy()函数,用于释放活动所占用的资源。活动销毁后它的整个生命周期也就结束了。...在控件对齐时要注意控件的排列方向,比如:当LinearLayout 的排列方向是 horizontal 时,只有垂直方向上的对齐方式才会生效,因为此时水平方向上的长度是不固定的,每添加一个控件,水平方向上的长度都会改变...viewPager; } SlidingActivity的onCreate函数中调用initTabViews函数,通过它来初始化标签页面。...;然后,在循环中,通过图片编号获取每一帧图像,接着调用AnimationDrawable的addFrame函数,将每一张图片作为一帧加入该对象,调用setOneShot函数,参数表示动画是否执行一次,true...事件处理接口对象也称为监听器,通过覆盖接口的回调方法实现对事件的捕捉和处理;View 类的事件监听器是一个接口,该接口中的回调方法会在 View 的事件监听器被触发时由 Android 系统调用。

    22610

    Android训练课程(Android Training) - 高效的显示图片

    虚拟设备的兼容性一文 为了适应多屏幕尺寸和密度指定了最小应用内存需求。应用程序需要优化去处理最小的内存限制。然而,要记住很多设备被设置成更高的限制。...这节课将引导你,当加载多个图像时,使用一个内存和磁盘图像缓存来提高UI的响应性和流畅性。 使用一个内存缓存 一个内存缓存提供了快速访问位图的方式,更好的占用珍贵的应用程序内存。...下面的代码片段提供了一个 调用 recycle(). 的演示。...return BitmapFactory.decodeFile(filename, options); } 下面的代码片段展示了 上面代码中调用的addInBitmapOptions()方法,它看起来...很多图像需要一次性被加载到屏幕上,当上下滚动时很多图像还需要准备好被显示。

    2.9K00

    Android照片墙加强版,使用ViewPager实现画廊效果

    记得关于照片墙的文章我已经写过好几篇了,有最基本的照片墙,有瀑布流模式的照片墙,后来又在瀑布流的基础之上加入了查看大图和多点触控缩放的功能。...ViewPager的基本用法我就不在本文中介绍了,如果还不了解的朋友可以到王鹏兄那里先学习一下 http://blog.csdn.net/wangjinyu501/article/details/8169924...接下来通过findViewById()方法获取到ViewPager和TextView控件的实例,并创建了一个ViewPagerAdapter对象作为ViewPager的适配器,之后去调用setCurrentItem...另外,这里的ViewPager还注册了OnPageChangeListener接口,每当ViewPager的页数发现改变时,onPageSelected()方法就会调用。...return true; } ...... } 这里使用getParent()获取到的就是ViewPager对象,然后调用requestDisallowInterceptTouchEvent()

    2.4K70

    TabLayout+ViewPager+Fragment实现切页展示「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。...这里就不放Log图给大家看,直接告诉大家,FragmentPagerAdapter在销毁Fragment时不会调用onDestroy()方法,而带了State的Adapter则会调用Fragment的onDestroy...如果这么简单地调用函数就能实现懒加载的话,那也没什么好说的,但是这里又有一个巨坑,则是因为这个setUserVisibleHint函数是游离在Fragment生命周期之外的,它的执行有可能早于onCreate...这又要提到之前Adapter的差异,onDestroy并不一定会调用,读者可以思考思考为什么。...其实ViewPager+Fragment的方式,ViewPager中显示的就是Fragment中所创建的View,Fragment只是一个控制器,并不会直接显示于ViewPager之中,这一点容易被忽略

    3.3K10

    Android四大组件之一Activity详解

    通常一个Android应用需要N个Activity组成,Activity主要负责与用户交互 在一个Activity生命周期中有以下方法会被系统回调: onCreate():在创建Activity时被回调...时被回调,总是在onStart()以后执行 onPause():暂停Activity时被回调 onResume():当Activity由暂停状态恢复为活动状态时。...(2)当我们按BACK键时,我们这个应用程序将结束,看一下LogCat ? ? 正好对应: ?...(3)当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,突然想听歌,这时候会按HOME键,然后去打开音乐应用程序。当我们按HOME的时候,看一下LogCat ? ? 正好对应: ?...(4)当我们再次启动ActivityDemo应用程序时,看一下LogCat ? 正好对应: ?

    63220

    Android 点将台:撒豆成兵

    () |--- 界面已经可见 onAttachFragment() |--- 有子Fragment被添加时回调 onResume() |--- 界面已经可交互 onPause()...Fragment -卍卍卍卍卍卍卍- onDetach: 2019-04-26 18:12:25.868: LifeCycleActivity--onDestroy: ---- 5.Fragment被替换时的生命周期...这是曾经让我疑惑的一点:构造函数入参来传参不是挺好的吗?但是: 貌似AS 不给我们用构造,需要通过Fragment#setArguments(Bundle)来传参 ? 如果我任性,偏要用呢?...----虽然画红线但是还是运行还是能跑起来的,效果也没有差别, 于是乎,问题来了: 为什么谷歌的大佬不推荐我们在Fragment中使用构造函数呢?...的生命周期回调 打开时 isVisibleToUser 出现了,而且是最先调用的,一开始是红色 isVisibleToUser= true 总的来说就是生成了红色和黄色两个Fragment并对两者其进行了初始化

    85120

    Android使用ViewPager实现左右循环滑动及轮播效果

    大家好,又见面了,我是全栈君 边界的时候会看到一个不能翻页的动画,可能影响用户体验。...:这个值直接关系到ViewPager的“边界”,因此当我们把它设置为Integer.MAX_VALUE之后,用户基本就看不到这个边界了(估计滑到这里的时候电池已经挂了吧o_O)。...实际上,实验表明这里如果加上了remove的调用,则会出现ViewPager的内容为空的情况。...轮播效果的实现:使用Handler进行更新这里我定义了一个Handler来处理ViewPager的轮播。所谓的“轮播”效果实现起来是这样的:每隔一定时间(这里是3秒)切换一次显示的页面。...为此,我们可以使用Handler的sendEmptyMessageDelayed()方法来实现定时更新,并注意用户也可能会对带有轮播效果的ViewPager手动进行滑动操作,因此我认为用户这时候是希望查看指定页面的

    2.5K20
    领券