魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
Android

Android服务保活-JobScheduler拉活

方案设计 Android5.0 以后系统对 Native 进程等加强了管理,Native 拉活方式失效。系统在 Android5.0 以上版本提供了 JobScheduler 接口,系统会定时调用该进程以使应用进行一些逻辑操作。 方案适用范围 该方案主要适用于 Android5.0 以上版本手机。 该方案在 Android5.0 以上版本中不受 forcestop 影响,被强制停止的应用依然可以被拉活,在 Android5.0 以上版本拉活效果非常好。 仅在小米手机可能会出现有时无法拉活的问题。 方案实现 JobS…

2016年12月8日 3条评论 19666点热度 0人点赞 daozi 阅读全文
Android

Android selector 失效的原因

1、pressed、selected、default 的顺序不对引起的问题。 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:Android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/login_press" android:state_focused="true"/> <item android…

2016年12月7日 2条评论 7639点热度 0人点赞 daozi 阅读全文
Android

Android资源动态加载1

在很多Android应用上,都有资源动态加载的功能,比如更换主题皮肤,替换聊天界面背景图片等。 我们知道,应用中的资源文件,包括图片,xml文件等,都是在编译的时候打包好的,那怎样才能动态加载资源呢? 其实有一个比较简单的思路,将需要替换的资源文件打包在一个apk文件中,动态下发到本地,然后通过重新构造Resources对象访问apk中的资源,进行本地的动态替换。主要有以下几个步骤: 一、指定资源文件加载路径 Android应用中的资源是通过AssetManager来管理的,其中addAssetPath方法可以指定…

2016年12月5日 2条评论 5449点热度 0人点赞 daozi 阅读全文
Android

Android studio 快速代码模板生成常用的缩写

为了提高书写代码的速度,我们会使用快捷键Ctrl+D(粘贴当前行或选中的内容到下一行),以前也整理过:Android Studio 默认的快捷键大全解释,这里有必要在说说快速代码模板生成常用的缩写。先看几个gif,后面告诉您在Android studio哪里看所有的和修改的地方,也会附录常用的。 1、快速生成TAG:logt 2、快速生成public static final  :psf 3、快速生成public static final String :psfs 4、快速生成public static final…

2016年12月1日 5条评论 13593点热度 0人点赞 daozi 阅读全文
Android

Android面试题10–IntentService与Service的区别

Service Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说它不能直接处理耗时操作。如果直接把耗时操作放在 Service 的 onStartCommand() 中,很容易引起 ANR .如果有耗时操作就必须开启一个单独的线程来处理。 那么我们当我们编写的耗时逻辑,不得不被service来管理的时候,就需要引入In…

2016年12月1日 2条评论 5280点热度 0人点赞 daozi 阅读全文
Android

Android面试题9–Android系统中GC什么情况下会出现OOM

这个问题可以这样回答: (1)数据库的cursor没有关闭。 (2)Bitmap对象不使用时没有采用recycle()释放内存。 (3)Activity中的对象的生命周期大于Activity。 (4)忘记注销监听器或者观察者。 (5)由非静态内部类导致。 (6)构造Adapter时,没有使用缓存contentview。 (7)Handler使用不当也可以造成内存泄漏的发生。 解释一下GC: GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致…

2016年12月1日 0条评论 3755点热度 0人点赞 daozi 阅读全文
Android

用Gson实现泛型解析

用Gson(URL:https://github.com/google/gson)解析Json方便之处我就不多说了,不过,要是针对没有实体类都写对应的解析方式是不是就有点晕了呢?代码一样就是解析的对象不一样,那么为什么不使用泛型呢?你会说我用了呀,会报错呀(java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to xxx)?是的,因为你没有写好,所以报错。 下面来看一下,我调通的代码吧,希望能帮助你。…

2016年11月28日 2条评论 14363点热度 0人点赞 daozi 阅读全文
Android

Android面试题8–Android Studio与Eclipse比较

Android Studio 好用吗? Android Studio是谷歌13年推出的一款基于Intellij IDEA开发的Android IDE。1.3版本之前有很多bug,所以导致没有多少人去使用,但是1.3之后版本的更新后已经非常不错了,现在的2.2基本到了不用就out的地步了。而且2016年11月3日Google已经正式终止了对Eclipse Android开发工具的支持。 那就说说它的优点: 1、自动保存,无需一直Ctrl + S。 2、有Code Local History,本地代码想还原到什么时间都…

2016年11月28日 5条评论 7139点热度 0人点赞 daozi 阅读全文
Android

Android面试题7–Android项目常用框架MVC、MVP、MVVM

一、MVC MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。 在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。那么Android项目中哪些代码来充当M,V,C角…

2016年11月28日 2条评论 10712点热度 0人点赞 daozi 阅读全文
Android

Android面试题6–BroadcastReceiver(广播)

BroadcastReceiver是四大组件之一,有接收广播机制,相对应就有发送广播机制。Android中,通过该机制,使得消息能在各个组件间、各个进程间传递,起到邮递员的作用。Broadcast在Android系统中应用的非常广泛,比如电池状态的变化、电话的接收、短信的接收、键盘输入法切换和网络连接状态变化都会由系统发送一个广播,然后应用程序通过BroadCastReceiver可以监听这些广播并作出相应的处理。此外,BroadCastReceiver可以通过监听其它应用程序发送的广播接收传递过来的信息进而实现进…

2016年11月28日 8条评论 8257点热度 0人点赞 daozi 阅读全文
Android

Android面试题5--Intent和IntentFilter的匹配规则

这个问题,一般都会问到,属于高频问题了。做了Android这么多年我也没有弄得很清楚,那这次我们就来仔仔细细的来理一理。 IntentFilter,顾名思义,就是Intent的过滤器。回想一下,好像Intent在我们的代码中出现的频率还是挺高的,是不是也没有特别的去理解它。 先来聊一下Intent Intent的意思是意图, 而就和它的意思差不多,每当我们使用 Intent的时候,总是去想干一些事情: startActivity(Intent intent) startService(Intent intent) …

2016年11月24日 4条评论 6368点热度 0人点赞 daozi 阅读全文
Android

Android面试题4--Activity之Intent的Flag

再详细讲解之前先说一下一个小细节: Intent的setFlag和addFlag有什么区别?是不是之前都没有太注意这个问题呢? 简单可以理解成:setFlag是把之前的替换掉,addFlag是添加新的。 addFlag可以多次添加即添加多个Flag,setFlag 也可以添加多个,不过需要一次性添加完,_Intent.setFlags(2|4); OK,我们切入正题,Flag很多,先说常用的Flag,再提提其他的Flag。 Flag的作用很多,有的标记为可以设定Activity的启动模式比如FLAG_ACTIVIT…

2016年11月24日 3条评论 7298点热度 0人点赞 daozi 阅读全文
Android

Android面试题3--常用单位dp、sp、in、dpi...

Android常用单位: 1.in(英寸)屏幕尺寸: 指实际的物理尺寸,为屏幕对角线的测量。一般讲的大小单位都是英寸,比如iPhone7的屏幕尺寸是4.7英寸。 2.px像素(pixel): 屏幕上的点,基本原色素及其灰度的基本编码。 3.分辨率(Resolution): 是指屏幕上垂直方向和水平方向上的像素个数。(比如iPhone7的分辨率是1334*750) 4.dpi(dot per inch): 就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。 Inch是一个物理单位(无论在任何设备上,其大小…

2016年11月21日 2条评论 6385点热度 0人点赞 daozi 阅读全文
Android

Android面试题2--Activity数据的保存和恢复

Android中有突发情况需要对数据进行保存: 1、点击back键 2、点击锁屏键 3、点击home键 4、其他APP进入前台 5、启动了另一个Activity 6、屏幕方向旋转 7、APP被Kill 这些时候就需要对数据进行保存,保存数据分为临时保存和持久化保存。 两种保存形式: 1、重写onSaveInstanceState()  在这个方法里进行对数据临时保存。 2、重写 onPause() 在这个方法里对数据进行持久化保存。 下面咱们详细说说这两种保存方式的步骤、什么情况下改用哪一种方法。 一、onSave…

2016年11月21日 4条评论 6437点热度 0人点赞 daozi 阅读全文
Android

Android面试题1--Activity的4种启动模式

对Android而言,Activity有四种启动模式,它们是: 1. standard 标准模式也是默认模式,每次都新建一个实例对象。 2. singleTop 如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶。 3、singleTask 如果在任务栈中发现了相同的实例,将其上面的任务终止并移除,重用该实例。否则新建实例并入栈。 4、singleInstance 允许不同应用,进程、线程等共用一个实例,无论从何应用调用该实例都重用。 想要感受一下的话写一个小demo,然后自己启动自己再点返回键就看出来了。下…

2016年11月20日 4条评论 8272点热度 0人点赞 daozi 阅读全文
1…56789…11
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

最新 热点 随机
最新 热点 随机
解决Android 7及以上Notification.contentView为null问题 彻底解决git命令免密问题 隐藏ScrollView、RecyclerView等滚动条和去掉滑动到边界阴影的方案 Android Studio 3.4 编译Release版本广点通所有广告不显示 Android中使用System的getProperty()方法及获取Android内核版本信息 弄清楚INSTALL FAILED CONFLICTING PROVIDER问题
Android面试题10–IntentService与Service的区别 Java基础之Volatile原理 Android Studio 导入新项目时候遇到的 gradle错误 Android中Parcelable如可快速生成 Android studio 快速代码模板生成常用的缩写 Android中Parcelable和Serializable的区别
最近评论
宝宝 发布于 7 年前(02月27日) 哈哈哈哈
GPU Mining 发布于 7 年前(02月19日) I am just starting to learn about all of this. Tha...
Timothynix 发布于 7 年前(02月08日) Your place is valueble for me. Thanks!… http:...
趣头条 发布于 7 年前(02月08日) 鸟儿叫,花儿笑,一年一季春来到!
xing1982 发布于 7 年前(02月04日) 不错不错!内容感觉好极了!

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号