![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 65
啋菇凉的尛蘑菇
许一世安暖,等到把风景都看透,请你陪我看细水长流。
展开
-
Windows环境GIT-Commit Log 中文乱码
配置了git默认文本编辑器git config -global core.editor EditPlus (需要在环境变量中配置EditPlus路径)Commit Log出现乱码:试了各种网上的方式,依旧不行。突发奇想,试下改变editplus的默认编码方式。更改方式:点击打开链接哇塞,居然成功了。原创 2016-12-13 19:04:33 · 2558 阅读 · 1 评论 -
Android 基于Message的进程间通信 Messenger完全解析
public class MessengerService extends Service { private static final String TAG = "MessengerService"; private static class MessengerHandler extends Handler { @Override public原创 2016-07-05 15:54:34 · 879 阅读 · 0 评论 -
当Activity关闭后,网络请求回调的处理
当我们在使用网络请求的时候,一般都是通过回调来获取请求到的数据。对于网络请求的回调需要注意的几个点比如我们的回调在Activity中处理数据,当我们把Activity关闭后,如果获取到数据时,就算我们的Activity被finish回调还是会执行,那么这个时候我们在回调里所做的一些操作,很可能会造成程序的错误。所以我们需要在回调的时候判断下Activity是否finish.isFi转载 2016-07-04 10:27:31 · 7337 阅读 · 0 评论 -
FragmentTransaction&Activity的状态
个人翻译的国外大牛博客 原文链接自从Android Honeycomb发布以来,下面的异常信息和trace已经在StackOverflow提出了很多了:java.lang.IllegalArgumentExceptionView=com.android.internal.policy.impl.PhoneWindow$DecorView{435e1028 V.E转载 2016-07-04 09:41:00 · 360 阅读 · 0 评论 -
仿照群英传-自定义View时钟样式
/** * 主要是支持wrap_content属性 * @param widthMeasureSpec * @param heightMeasureSpec */ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthMode = MeasureSpec.getMode(widthMeasu原创 2016-07-14 16:13:19 · 211 阅读 · 0 评论 -
android中的spannable的使用
import java.io.IOException; import org.xmlpull.v1.XmlPullParserException; import android.app.Activity; import android.content.res.ColorStateList; import android.content.res.XmlReso原创 2016-06-16 17:51:07 · 1708 阅读 · 0 评论 -
java中Class.forName的含义
Class.forName(xxx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段 Class mClass = Class.forName(xxx);Object anInstance = mClass.newInstance();原创 2016-06-30 14:10:36 · 382 阅读 · 0 评论 -
Java 如何有效地避免OOM:善于利用软引用和弱引用
想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲: 一.了解 强引用、软引用、弱引用、虚引用的概念 二.进一步理解软引用和弱引用 三.如何利用软引用和弱引用解决OOM问题 如果有不正之处,希望谅解和批评指正,不胜感激。转载 2016-06-28 16:03:04 · 544 阅读 · 0 评论 -
全局ProgressDialog---DialogManager
public class ProgressDialog extends Dialog { private Context mContext; private String mMessage; private int mLayoutId; private TextView message; private com.rey.material.widge原创 2016-05-28 10:52:55 · 1864 阅读 · 0 评论 -
Android处理延时加载的方法
在项目开发中,经常需要通过延时加载来实现满足我们的项目要求。那到底怎样来实现延时,下面结合java与android的相关方法来实现延时问题。一. 利用线程的Sleep方法new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method s转载 2016-04-19 09:38:35 · 1440 阅读 · 0 评论 -
Android Application
应用启动的时候,会首先调用Application.attach(),当然,这个方法是隐藏的,开发者能接触到的第一个被调用的方法其实是Application.onCreate(),我们通常会在这个方法里面完成各种初始化,比如图片加载库、Http请求库的默认配置初始化操作等等。但是最好别在这个方法里面进行太多耗时操作,因为这会影响App的启动速度,所以对于不必要的操作可以使用异步操作、懒加载、延时加载转载 2016-04-18 18:02:38 · 405 阅读 · 0 评论 -
建造(Builder)模式
http://blog.csdn.net/cjjky/article/details/7327200【1】基本概念 建造(Builder)模式是一种对象构建的设计模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。【2】简单分析我们先来看一下该设计模式的UML结构图转载 2016-04-18 11:17:24 · 265 阅读 · 0 评论 -
模版模式(Template)
模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去实现,这可能会让我们想到策略模式,两者有着本质的区别。何时能用到它?我们看一下策略模式的应用场景1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行转载 2016-04-18 11:03:17 · 279 阅读 · 0 评论 -
不要在Android的Application对象中缓存数据!
转自:http://zmywly8866.github.io/2014/12/26/android-do-not-store-data-in-the-application-object.html说明 这是翻译老外的一篇文章,我之前有遇到过这个问题,并且看到有人在Segmentfault上问,最主要我在StackOverflow上居然没搜到累死问题,所以觉得有必要翻译过来以便后面转载 2016-07-06 09:21:49 · 453 阅读 · 0 评论 -
Looper,Handler,Message
Looper线程循环工作的线程。在程序开发中,我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程。使用Looper类创建Looper线程:public class LooperThread extends Thread { @Override public void run() { // 将当前线程初始化为L原创 2016-06-22 17:02:11 · 164 阅读 · 0 评论 -
Android开机自启动程序
背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”到这个消息,再启动之即可。记住,Android框架说:Don''t call me, I''ll call you back。我们要做的是做好接收这个消息的准备,而实现转载 2016-07-19 10:59:51 · 286 阅读 · 0 评论 -
WeakReference 在android中的应用
转载:https://my.oschina.net/u/1177694/blog/523922首先我们来看一段代码public class AutoActivity extends Activity { Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) {转载 2016-11-01 17:38:03 · 333 阅读 · 0 评论 -
Mark!Android最佳的开源库集锦
工欲善其事,必先利其器。一个好的开发库可以快速提高开发者的工作效率,甚至让开发工作变得简单。本文收集了大量的Android开发库,快来切磋一下,到底哪一个最适合你。动画Android View Animations:一个非常强大的开源动画库,开发者可以用来创建各种效果。RecyclerView Animators:可实现Recyc转载 2016-11-11 11:29:57 · 373 阅读 · 0 评论 -
Android 蓝牙4.0
// 初始化 Bluetooth adapter, 通过蓝牙管理器得到一个参考蓝牙适配器(API必须在以上android4.3或以上和版本)final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);mBluetoothAdapter = blu原创 2016-10-27 11:13:02 · 408 阅读 · 0 评论 -
Android 6.0 运行时权限处理
Android6.0系统默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限,所以如果你以前的APP设置的targetSdkVersion低于23,在运行时也不会崩溃,但这也只是一个临时的救急策略,用户还是可以在设置中取消授予的权限。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (原创 2016-10-27 11:06:48 · 405 阅读 · 0 评论 -
检测内存泄漏的常见工具-LeakCanary
见到这个标题有经验的开发者可能要吐槽我是标题党了,特别是从Eclipse时代走过来的开发者,以为我一要开始贴那张像**一样的MAT内存模型图或者AndroidStudio中Monitors下的实时内存占用图,又要开始分析那一条条剪不断理还乱的内存引用链,然后费尽九牛二虎之力去查找项目中无数的内存泄漏中的一个。但是,我要告诉你,你错了。其实,以前我看到内存泄漏分析文章的时候也是这样的想法,看着恐怖的原创 2016-10-26 15:48:15 · 8796 阅读 · 1 评论 -
android 属性动画完全解析
相比于ValueAnimator,ObjectAnimator可能才是我们最常接触到的类,因为ValueAnimator只不过是对值进行了一个平滑的动画过渡,但我们实际使用到这种功能的场景好像并不多。而ObjectAnimator则就不同了,它是可以直接对任意对象的任意属性进行动画操作的,比如说View的alpha属性。不过虽说ObjectAnimator会更加常用一些,但是它其实是继承自转载 2016-10-24 15:38:11 · 307 阅读 · 0 评论 -
AndroidStudio 中如何设置注释模板
在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等。那么在android studio中该如何设置呢?原创 2016-10-22 15:11:24 · 428 阅读 · 0 评论 -
Error:Can't have more than one marked region along edge.
Error:Can't have more than one marked region along edge.出现这个异常是因为我在 .9 图的右侧画了两条线,由于 .9 图的上边界和左边界的划线是负责拉伸扩展的,而下边界和右边界划线则是内容区域,所以 .9 图不允许右侧和下边界有两条划线,而左边界和上边界则没有问题。原创 2016-09-08 14:11:11 · 552 阅读 · 0 评论 -
查看Android应用签名信息
转载 2016-09-08 14:10:18 · 270 阅读 · 0 评论 -
项目搭建
框架:MVP,框架真的很坑爹,小项目,进度赶的不推荐用此框架,代码量增加了N个量级,不过代码逻辑,业务分层比之前清晰很多。有兴趣的可以尝试下,大致有Activity/Fragment,IView,Present,IBiz,Biz,Bean。相互关系慢慢梳理。网络框架:okhttp3,这个框架没有选,客户指定的,没办法,只能找了下封装方法,我选择的:OkHttp网络连接封装工具类-http://原创 2016-08-25 15:22:12 · 374 阅读 · 0 评论 -
设置ListView的选中状态:android:state_activated="true"
1.说明看这篇文章之前,首先你得知道怎么通过Adapter使用ListView控件,不然请不要往下看。主要是为了便于快速阅读,删除了很多多余的代码。包含了字体颜色和背景颜色的改变,纯xml。没有上源代码,有时间再进行整理。2.演示3.步骤:1.ListView控件中必须设置属性,不然是不起作用的:android:choiceMode="sin转载 2016-08-31 10:55:01 · 2993 阅读 · 0 评论 -
Java中删除文件、删除目录及目录下所有文件
Java中删除文件、删除目录及目录下所有文件功能:删除某个目录及目录下的所有子目录和文件知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: /** * 递归删除目录下的所有文件及子目录下所有文件 * @param dir 将要删除的文件目录 * @retu转载 2016-06-23 16:53:15 · 1571 阅读 · 0 评论 -
Android dp2px
1当我们在资源文件里设置尺寸的时候多是用dp,那么Android的开发并不局限于我们所用的资源文件,有时候我们需要动态的管理视图的尺寸,view给我们提供了setPadding(left, top, right, bottom);但是此时的 int并不是dp,而是px,由自己来转换;下面给出转换的函数。 public static int px2dip(Context c原创 2016-04-18 10:32:41 · 7920 阅读 · 0 评论 -
TextView 太小,点击无响应.
<RelativeLayout android:layout_width="match_parent" android:layout_height="44dp" android:paddingLeft="@dimen/top_title_text_16dp" android:paddingRight="@dimen/top_title原创 2016-04-18 09:09:30 · 765 阅读 · 0 评论 -
android中的category
CATEGORY_ALTERNATIVE 设置这个activity是否可以被认为是用户正在浏览的数据的一个可选择的action CATEGORY_APP_BROWSER 和ACTION_MAIN一起使用,用来启动浏览器应用程序 CATEGORY_APP_CALCULATOR 和ACTION_MAIN一起使用,用来启动计算器应用程序 CATEGORY_转载 2015-03-11 09:44:06 · 377 阅读 · 0 评论 -
Android随笔之——Android广播机制Broadcast详解
在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应用程序所接收。一、Android广播机制三要素: 1、转载 2015-03-11 15:29:33 · 388 阅读 · 0 评论 -
notify()和notifyAll()主要区别
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。void notify(): 唤醒一个正在等待该对象的线程。void notifyAll(): 唤醒所有正在等待该对象的线程。两者的最大区别在于:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会转载 2015-02-05 09:50:11 · 342 阅读 · 0 评论 -
Android在thread中Toast不能显示问题解决
第一种方法:改写代码之前是:Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG).show();改写之后:Looper.prepare();Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_LONG).show();Lo原创 2015-01-15 11:23:43 · 1969 阅读 · 0 评论 -
Listview的onItemClickListener无法响应的问题
有时会碰到ListView的onItemClickListener事件无法响应,主要原因:listview的子元素中包含了Button或者ImageButton之类的元素,button的优先级高于listview 所以不能监听item的点击事件。解决方法:在item 的根节点加入 “ android:descendantFocusability="blocksDescendants" 即可转载 2015-01-16 10:53:14 · 288 阅读 · 0 评论 -
Android开发之详解五大布局
为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是:LinearLayout(线性布局)TableLayout(表格布局)RelativeLayout(相对布局)AbsoluteLayout(绝对布局)FrameLayout(框架布局)利用这五种布局,可以在屏幕上将控件随心所欲的摆放,而且控件的大小和位置会转载 2015-01-16 11:19:35 · 317 阅读 · 0 评论 -
Android屏幕适配
如何将一个应用程序适配在不同的手机上,虽然这不算是一个技术问题,但是对于刚刚做屏幕的开发人员来说,还真不是一件多么简单的事情。首先:你需要在AndroidManifest.xml文件的元素如下添加子元素 <supports-screens android:anyDensity="true" android:largeScreens="true"转载 2015-01-15 11:55:55 · 298 阅读 · 0 评论 -
Activity生命周期
子曰:溫故而知新,可以為師矣。《論語》学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解serv转载 2015-01-15 15:10:16 · 275 阅读 · 0 评论 -
android Task 任务 launchMode 简介
关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。 Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难度,帮助大家转载 2015-01-15 11:36:04 · 326 阅读 · 0 评论 -
Android EditText 禁止换行与换行
在做登录框的时候,很多时候要在输入框禁止换行输入,一般有两种方法:第一种,就是监听EditText的setOnEditorActionListener方法,然后把enter键禁止,这种方法有个不好的地方就是,在虚拟键盘中依然会显示enter键: /** * 设置相关监听器 */ private void setListener(){ userNameEdit.setOnE转载 2015-02-02 15:03:04 · 2255 阅读 · 0 评论