四大组件和Fragment
文章平均质量分 92
Luckie stone
Android应用开发。
展开
-
Android的startActivityForResult()与onActivityResult()与setResult()参数分析
一、使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Activity处理。这种带数据的意图跳转需要使用activity的onActivityResult()方法。(1)startActivityForResult(Intent intent, int r...原创 2018-07-01 10:10:30 · 229 阅读 · 0 评论 -
Activity的四种启动模式和onNewIntent()
Android中Activity启动模式详解 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 Android总Activity的启动模式分为四种:Activity启动模式设置: <activity androi...转载 2018-08-21 06:28:44 · 312 阅读 · 0 评论 -
JobService
JobService它是Android5.0以后新增的一个服务,我们先来看下官方的解释。 Google从Android SDK 21之后添加了JobScheduler来执行一些满足特定条件但不紧急的后台任务,我们可以利用JobScheduler来执行这些特殊的后台任务时来减少电量的消耗。JobService则是一个抽象类,其中包含两个抽象方法:abstract boolean ...转载 2018-08-22 06:41:25 · 1056 阅读 · 0 评论 -
Android Fragment的标准写法
** * 一个简单的Fragment子类 * 含有这个Master_Fragment的Activity必须要去 实现 Master_Fragment.OnFragmentInteractionListener * 这个接口来处理Fragment与Activity的互动事件 * 这里强烈建议使用工厂方法Master_Fragment#newInstance * 来创造Master_Fra...转载 2018-08-26 07:44:20 · 1211 阅读 · 0 评论 -
Android LocalBroadcastManager的使用
一、BroadcastReceiver主要用途有发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等)二、BroadcasetReceiver的注册方式 manifest清单文件中的全局注册 按照生命周期,在Service或者Activity中使用代码注册 manifest的注册方式 <receiver android:name="...转载 2018-08-26 08:05:52 · 919 阅读 · 0 评论 -
ViewPager+Fragment不预加载页面
实现类似网易新闻客户端,ViewPager每次只加载当前页。默认的情况下使用FragmentPagerAdapter或者FragmentStatePagerAdapter都会默认多加载一页,即使是重写android.support.v4.view.ViewPager,将变量设置:DEFAULT_OFFSCREEN_PAGES=0。所以以下我用默认的VIewPager。这里我介绍一...转载 2018-08-24 06:42:13 · 1494 阅读 · 0 评论 -
如何阻止frament恢复销毁前状态
App开发时,我们总是遇到各种各样的需求。前些日子我就遇到一个不常见的需求:我们需要当Activity恢复时,不需要恢复Fragment的状态我们知道,在内存不足的时候,系统会回收优先级较低的Activity,并在销毁前通过onSaveInstanceState()方法保存当前状态。当然,fragment的状态也在该方法中被保存,代码截图如下。接下来,我们再看一下在activity的on...转载 2018-12-16 16:53:03 · 1153 阅读 · 0 评论 -
Activity的四种启动模式和应用场景
简介通过设置ActivityManifestActivity_launchMode可以设置Activity的启动模式。默认情况下,使用启动模式:standard。同时,launchMode可以通过Intent flags的改变在运行时被复写,比如 Intent flags FLAG_ACTIVITY_SINGLE_TOP, FLAG_ACTIVITY_NEW_TASK,FLAG_AC...转载 2019-01-07 07:21:28 · 963 阅读 · 0 评论 -
Fragment详解之一——概述
一、为什么会有Fragment——设计理念Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上–例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理 viewhierarchy的复杂变化。 通过将activit...转载 2019-06-08 08:02:27 · 415 阅读 · 0 评论 -
Fragment详解之二——基本使用方法
上一篇给大家简单说了说Fragment是用来做什么的及生命周期的问题,这篇我们就用实例来看看我们在代码中如何使用Fragment;在这里我们全部使用android-support-v4.jar包里Fragment,不用系统自带的Fragment;这两个基本一样,但V4包中的相对功能更强大一些。一、静态添加Fragment新建一个项目harvicBlog2Static,在其中添加一个布局:...转载 2019-06-08 08:02:35 · 255 阅读 · 0 评论 -
Fragment详解之三——管理Fragment(1)
前面给大家稍微看了要怎么使用fragment,在上篇中,我们也初步接触到了add,replace这些fragment操作的函数,下面就再详细讲讲如何管理Fragment页面吧。一、概述1、FragmentManager要管理activity中的fragments,你就需要使用FragmentManager。通过getFragmentManager()或getSupportFragment...转载 2019-06-08 08:02:48 · 2091 阅读 · 0 评论 -
Fragment详解之四——管理Fragment(2)
上一篇,给大家讲了有关Fragment管理的几个函数,即add,replace,remove,这节再讲讲其它函数,然后再给大家看一个系统BUG。一、hide()、show()1、基本使用这两个函数的功能非常简单,public FragmentTransaction hide(Fragment fragment);//将指定的fragment隐藏不显示public Fragment...转载 2019-06-08 08:02:55 · 442 阅读 · 0 评论 -
Fragment详解之五——Fragment间参数传递
在关Fragment间参数的传递,有两种情况:第一种情况:同一个container中不同fragment间的参数传递。这种情况一般发生在fragment跳转时,上一个Fragment将参数传递给下一个Fragment。第二种情况:是同一个Activity中,不个container间Fragment的参数传递。有关第一种情况,以前写过一篇文章,详细说明了上一个Fragment将参数传递给下一...转载 2019-06-09 09:22:39 · 6318 阅读 · 0 评论 -
Fragment详解之六——如何监听fragment中的回退事件与怎样保存fragment状态
经过前几篇,大家应该对Fragment认识的已经足够多了,有关Fragment的基础知识在前几篇基本就讲完了,这篇给大家讲两个可能会用到的知识点。这两点理解起来可能有点难度,大家可要耐着点性子哈。一、如何监听Fragment中的回退事件1、问题阐述在Activity中监听回退事件是件非常容易的事,因为直接重写onBackPressed()函数就好了,但当大家想要监听Fragment中的回退...转载 2019-06-09 09:22:47 · 2146 阅读 · 0 评论 -
Fragment 的妙用 - 优雅地申请权限和处理 onActivityResult
前言Fragment,简称碎片,可以简单地认为它就是一个“控件”,更加具体一点就是“View控制器”。它自身有生命周期。在开发中,我们经常用到,再熟悉不过了。然而,Fragment 的一些巧妙引用,不知道你是否了解过?使用 Fragment 封装权限申请使用 Fragment 优雅处理 onActivityResultActivity reCreate 的时候用来存储数据这篇文章主要讲...转载 2019-06-09 09:23:14 · 330 阅读 · 0 评论 -
Android中Activity启动过程探究
首先追溯到Activity的启动,随便启动一个自己写的demo项目,使用DDMS进行debug标记,然后在Debug中把主线程暂停,可以看到调用栈。如下图所示:于是我们先看android.app.ActivityThread的main()方法。android.app.ActivityThread.main()main()方法中对一个Looper对象进行初始化,形成一个消息循环,那么...转载 2018-10-27 13:49:47 · 195 阅读 · 0 评论 -
深入了解AccessibilityService
微信红包自打出世以来就极其受欢迎,抢红包插件可谓红极一时.今天,我们重新谈谈抢红包插件的哪些事儿.本质上,抢红包插件的原理不难理解,其过程就是在收到红包时,自动模拟点击.做过自动化UI测试的童鞋应该非常熟悉了.那么问题来了,我们怎么知道有没有红包,又怎么模拟点击操作呢?在PC端我们有按键精灵,那么在Android设备上呢?话说也偶然,Google为了让Android系统更实用,为用户提供了无障碍辅...转载 2019-06-25 06:41:34 · 2681 阅读 · 0 评论 -
FileProvider的使用
在官方7.0的以上的系统中,尝试传递 file://URI可能会触发FileUriExposedException。目录第一步 声明FIleProvider 第二步 编写XML文件 第三步 使用FileProvider第一步 声明FIleProvider为什么要声明呢?因为FileProvider是ContentProvider子类注意需要设置一个meta-data,里面...转载 2019-08-02 06:58:20 · 9626 阅读 · 2 评论 -
android 细节
1.Service一般运行在主线程中。2.IntentService是一个基于Service的一个类,用来处理异步的请求。你可以通过startService(Intent)来提交请求,该Service会在需要的时候创建,当完成所有的任务以后自己关闭,且请求是在工作线程处理的。...原创 2018-02-24 16:49:59 · 202 阅读 · 0 评论 -
Android IntentService完全解析 当Service遇到Handler
转载出处: http://blog.csdn.net/lmj623565791/article/details/47143563; 本文出自:【张鸿洋的博客】一 概述大家都清楚,在Android的开发中,凡是遇到耗时的操作尽可能的会交给Service去做,比如我们上传多张图,上传的过程用户可能将应用置于后台,然后干别的去了,我们的Activity就很可能会被杀死,所以可以考虑将上传操作交给Serv...转载 2018-03-08 09:07:53 · 287 阅读 · 0 评论 -
在当前activity中调用另一个activity中的方法怎么处理?
在使用接口回调方法时,要注意,class 和activity 还是有差异的,两个activity之间不建议使用接口interface 。eg:在A-activity 中调用 B-activity中的方法时,总会报接口对象是空的,进而接口的方法没有办法进行调用,而在activity和class之间,调用interface就不会出现上述问题 , 又一次遇到这个问题并碰到一篇在一...转载 2018-07-20 06:31:10 · 7727 阅读 · 1 评论 -
Android屏幕横竖屏切换和生命周期管理
一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置。 一.屏幕横竖屏切换的代码 很多文章一上来就将什么生命周期或者乱七八糟的,我认为你首先要会横竖屏切换啊!(一)设置屏幕横屏代码 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LAN...转载 2018-06-23 10:40:57 · 411 阅读 · 0 评论 -
Service 的一些细节
Service 简介Service 的概念相信大家都知道:后台运行服务,它可以在后台执行长时间运行操作而不提供用户界面。由于 Service 在用户切换到其他应用时依然可以运行,它一般被用来进行后台播放音乐、网络请求、文件 I/O 或者其他服务。正如我们看到的,很多时候 Service 所做的工作和我们为了避免 ANR 另开一个线程所做的任务很相似,那在做这些任务时该选择开启服务还是线程呢?影响这...转载 2018-04-20 08:02:54 · 223 阅读 · 0 评论 -
如何向一个Fragment传递参数---setArguments方法的介绍
在我们平常开发中经常会用到Fragment,当我们使用Fragment时一般是通过new Fragment的构造方法来实现,如果我问你怎么向一个Fragment传递参数,你是不是会首先想到通过构造方法,当面试被问到这个问题的时候我也是这么想的,后来发现自己错了,现在给大家讲一下究竟该怎么做。首先我们看构造方法这种方式为什么不行,根据Android文档说明,当一个fragment重新创建的时候,系统...转载 2018-03-08 08:37:55 · 1014 阅读 · 0 评论 -
Fragment全解析系列:那些年踩过的坑以及解决方案
1、Fragment全解析系列(一):那些年踩过的坑本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,并给出解决方案;这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑。简陋的目录1、getActivity()空指针2、异常:Can not perform this action after o...转载 2018-02-09 08:57:13 · 1761 阅读 · 1 评论 -
如何在一个Activity里销毁另外一个Activity
首先要在被销毁Activity里面定义一个静态全局Activity变量,之后再onCreated方法里让它等于this public static Activity mActivity; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...转载 2018-07-09 06:17:11 · 2596 阅读 · 0 评论 -
Android Launcher 启动 Activity 的工作过程
Launcher手机桌面也是一个App,每一个应用的icon都罗列在Launcher上,点击icon触发onItemClick事件,下面例如我们要启动「淘宝」这个App,首先我们要在清单文件定义默认启动的Activity信息。 <activity android:name=".MainActivity"> <intent-filter>...转载 2018-07-09 06:16:42 · 619 阅读 · 0 评论 -
java.lang.IllegalStateException: Fragment already added异常的处理
在add()方法时候,先判断fragmentA.isAdded(),如下调用可以避免该异常:if(!fragmentA.isAdded()){ FragmentManager manager = ((FragmentActivity)context).getSupportFragmentManager(); Fragm...原创 2018-07-01 10:29:46 · 3233 阅读 · 0 评论 -
Fragment类里面有用但被忽略的方法
1、getView() 获取Fragment的root view,即onCreateView的返回值。所以,我们在Fragment的任何地方都可以调用:getView().findViewById(R.id.xxx);原创 2018-04-02 15:08:35 · 431 阅读 · 0 评论 -
Android四大组件之内容提供者Content Provider总结
0.内容提供者简介 内容提供者(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供者是Android实现跨程序共享数据的标准方式。 不同于文件存储和SharedPreferences存储中的两种全局可读可写操作模式,内容提供者可以选择只对哪一部分数据进行...转载 2018-07-11 06:20:54 · 863 阅读 · 0 评论 -
Android Fragment 真正的完全解析(上)
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fragme...转载 2018-07-13 06:27:27 · 137 阅读 · 0 评论 -
Android Fragment 真正的完全解析(下)
本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~1、管理Fragment回退栈类似与Android系统为Activity维护一个任务栈,我们也可以通过Activity维护一个回退...转载 2018-07-13 06:27:40 · 130 阅读 · 0 评论 -
Android Fragment 你应该知道的一切
1、概述首先我们简单回顾一下,相信大家对Fragment的都不陌生,对于Fragment的使用,一方面Activity需要在布局中为Fragment安排位置,另一方面需要管理好Fragment的生命周期。Activity中有个FragmentManager,其内部维护fragment队列,以及fragment事务的回退栈。一般情况下,我们在Activity里面会这么添加Fragment:publi...转载 2018-07-14 06:55:36 · 219 阅读 · 0 评论 -
Service和Thread的关系
不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会有点让你吃惊,因为Service和Thread之间没有任何关系!之所以有不少人会把它们联系起来,主要就是因为Service的后台概念。Thread我们大家都知道,是用于开启一个子线程,在这里去执行一些耗时操作就不会阻塞主线程的运行。而...转载 2018-07-06 06:41:57 · 172 阅读 · 0 评论 -
android 辅助功能 AccessibilityService
对于那些由于视力、听力或其它身体原因导致不能方便使用Android智能手机的用户,Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音(不支持中文)、触觉反馈、手势操作、轨迹球和手柄操作。开发者可以搭建自己的Accessibility服务,这可以加强可用性,例如声音提示,物理反馈,和其他可选的操作模式。 AccessibilityServi...转载 2018-07-01 12:01:12 · 917 阅读 · 1 评论 -
Android 多线程之IntentService 完全详解
一、IntentService概述 上一篇我们聊到了HandlerThread,本篇我们就来看看HandlerThread在IntentService中的应用,看本篇前建议先看看上篇的HandlerThread,有助于我们更好掌握IntentService。同样地,我们先来看看IntentService的特点:它本质是一种特殊的Service,继承自Service并且本身就是一个抽象类...转载 2018-05-11 08:36:20 · 242 阅读 · 0 评论 -
Android Service完全解析,关于服务你所需知道的一切(上)
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。 不过,虽然S...转载 2018-07-19 06:55:36 · 147 阅读 · 0 评论 -
Android Service完全解析,关于服务你所需知道的一切(下)
在上篇文章中我们知道了,Service其实是运行在主线程里的,如果直接在Service中处理一些耗时的逻辑,就会导致程序ANR。 让我们来做个实验验证一下吧,修改上一篇文章中创建的ServiceTest项目,在MyService的onCreate()方法中让线程睡眠60秒,如下所示: public class MyService extends Service { ...转载 2018-07-19 06:55:54 · 109 阅读 · 0 评论 -
Android 7.0 行为变更 通过FileProvider在应用间共享文件
一、概述之前项目的新特性适配工作都是同事在做,一直没有怎么太关注,不过类似这些适配的工作还是有必要做一些记录的。对于Android 7.0,提供了非常多的变化,详细的可以阅读官方文档Android 7.0 行为变更,记得当时做了多窗口支持、FileProvider以及7.1的3D Touch的支持,不过和我们开发者关联最大的,或者说必须要适配的就是去除项目中传递file://类似格式的uri...转载 2019-08-02 07:11:59 · 436 阅读 · 0 评论