自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(24)
  • 收藏
  • 关注

原创 IntentService的使用

IntentService是一个基于Service的一个类,用来处理异步的请求。你可以通过startService(Intent)来提交请求,该Service会在需要的时候创建,当完成所有的任务以后自己关闭,且请求是在工作线程处理的。有两个好处,一方面不需要自己去new Thread了;另一方面不需要考虑在什么时候关闭该Service了。public class MyService extends

2017-08-01 13:17:23 321

原创 Android子线程更新UI的方法

Android中常用到的子线程更新UI的方法1.Handler1.通过handler.posthandler.post(new Runnable() { @Override public void run() { // update UI }});2.通过发送MessageHandler handler=new Handler(){ @Override

2017-08-01 11:18:55 527

原创 终止Java线程

线程执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,但有时run()方法是永远不会结束的,或者需要循环很长的时间,当需要结束线程时,如何退出线程呢? 有三种方法可以结束线程: 1.设置退出标志,使线程正常退出,也就是当run()方法完成后线程终止 2.使用interrupt()方法中断线程 3.使用stop()方法强行终止线程1.通过退出标志publi

2017-07-31 11:59:44 315

原创 Android中判断当前线程是否是主线程

通过Thread.currentThread()得到当前线程,通过Looper.getMainLooper().getThread()得到主线程,进行比较即可。public boolean isMainThread() { return Thread.currentThread() == Looper.getMainLooper().getThread();}另外,在Java中没有Loop

2017-07-31 09:48:37 3236

转载 Java synchronized的使用

synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的

2017-07-26 14:43:02 281

原创 Java线程状态

新建状态(New):新创建了一个线程对象。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态

2017-07-26 13:02:57 242

转载 Activity、View、Window的理解

要了解这三者之间的关系,我们带着问题通过分析源码一步一步来揭开它们的神秘面纱!文章有点长,首先要理解Activity、View、Window,我提出了一些问题,这篇文章可以解答如下问题:1、为什么要设计Activity、View、Window?2、Activity工作过程是什么样的?(理解Activity)3、Window是什么?它的职能是什么?4、View跟Window有什么联系?5、Activi

2017-07-20 18:06:17 372

转载 Android中的内存管理机制

1、基于Linux内存管理   Android系统是基于Linux 2.6内核开发的开源操作系统,而linux系统的内存管理有其独特的动态存储管理机制。不过Android系统对Linux的内存管理机制进行了优化,Linux系统会在进程活动停止后就结束该进程,而Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次

2017-07-20 18:00:08 491

原创 Android内存泄露

内存泄露内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放。内存泄露的危害内存泄漏是造成OOM(内存溢出)主要原因之一。由于Android系统为每个应用程序分配的内存有限,当一个应用中产生的内存泄漏比较多时,就难免会导致应用所需要的内存超过这个系统分配的内存限额,就会造成内存溢出而导致应用crash。常见内存泄漏以及解决办法1、非静态内部类的静态实例容易造

2017-07-20 17:31:21 288

原创 Android 软键盘交互

今天碰到一个需求,当用户进入搜索界面内后,弹出键盘,键盘右下角回车键变成“搜索”样式,当用户输入内容后,点击搜索按钮将进行关键词搜索,当用户没有输入内容点击搜索按钮,将收起键盘,回到发现界面。这样的需求以前的也碰到过,唯一的区别就是要键盘右下角回车键前程“搜索”样式,百度到了解决办法,在此记录一下。方法很简单,在EditText中设置两个属性: android:imeOptions=”action

2017-07-19 11:12:00 322

转载 Touch事件传递

Touch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。ViewGroup的相关事件有三个:onInterceptTouchEvent

2017-07-17 17:16:06 259

转载 WebView方法总结

前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录1. 简介WebView是一个基于webkit引擎、展现web页面的控件。 Android的Webview在低版本和高版本采用了不同的webkit版本内

2017-07-17 08:42:38 635

原创 Android WebView的各种load方法

在Android开发过程中,经常用webView加载H5或者html格式的文本。加载H5:loadUrl(String url):这个方法是get请求,所以,所有的东西(hostUrl、参数等)都需要通过字符串的形式拼接起来。既然有get请求,就当然有post请求 postUrl(String url,byte[] postDate):可以和loadUrl一样,url传拼接完后的字符串,postD

2017-07-15 11:49:47 1643

原创 自定义Behavior(二)

上次讲了自定义Behavior的child监听dependency的状态变化,这次就接着说child监听实现了NestedScrollingChild的接口的dependency的滑动状态。 需要重写两个方法 @Override public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, View c

2017-07-11 14:36:05 307

原创 自定义Behavior(一)

CoordinatorLayout,是Material风格的重要组件, 作为布局的顶层控件,协调(Coordinate)其他组件, 实现联动。在我们新建Activity的时候,可以通过ScrollingActivity模板,创建一个标准的CoordinatorLayout布局的Activity,相信大家一定见识过,网上介绍CoordinatorLayout使用方法的文章也有很多,这里我就不再说了。今

2017-07-10 17:26:34 681

原创 BottomSheet的使用

Bottom Sheet是在support library 23.2之后提供的一个新控件,一个底部表,就是我们经常在地图、音乐等app看到的效果。需要用6.0以上的SDK进行编译才可以使用此控件,当然6.0一下的手机也可以使用。先上效果图这篇文章我给大家说说BottomSheetBehavior的使用及注意的地方添加依赖compile 'com.android.support:design:25.3

2017-07-10 10:55:16 2485

原创 Android 6.0 动态权限申请

自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有的权限而导致的无法安装的事情,也不会再不征求用户授权的情况下,就可以任意的访问用户隐私,而且即使在授权之后也可以及时的更改权限。这就是6.0版本做出的更拥护和注重用户的一大体现。Google将权限分为两类,一类是Normal

2017-07-07 16:46:12 1478 1

翻译 Android下网络通信接口

Android平台有三种网络接口可以使用,他们分别是:java.net(标准Java接口)、Org.apache接口和Android.net(Android网络接口)。1.java.net JDK提供的与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数

2017-07-07 15:44:58 771

原创 Android开发之getX,getRawX,getWidth,getTranslationX等的区别

先看一张图片(网上找的) 第一种是在onTouchEvent中 event.getX():表示的是触摸的点距离自身左边界的距离 event.getY():表示的是触摸的点距离自身上边界的距离 event.getRawX:表示的是触摸点距离屏幕左边界的距离 event.getRawY:表示的是触摸点距离屏幕上边界的距离第二种是在View中 view.getTop():子View的顶部到父V

2017-06-27 16:28:49 1609 3

原创 有Return情况下的try catch finally执行顺序

情况一:try{} catch(){} finally{} return; 程序按正常顺序执行。情况二:try{return} catch(){} finally{} return; 程序先执行try块中return之前的代码,再执行finally块中的代码,最后执行try块中的return。需要注意的是finally块中的代码无法影响try块中的return值,比如说: pr

2017-06-27 09:22:01 325

原创 Android Activity和Fragment的转场动画

Activity转场动画可以通过overridePendingTransition(int enterAnim, int exitAnim)来实现。这个方法是API 5加入的,方法的第一个参数:enterAnim,是跳转Activity的进入动画的resource ID;第二个参数exitAnim,是当前Activity的离开动画的resource ID。动画的资源文件放在res\anim\目录下,

2017-06-26 18:15:31 890

原创 Activity启动模式及Intent 常用Flag

Activity启动模式共有四种standard:Activity的默认启动模式,无论栈中是否存在某个Activity实例,另一个activity通过Intent跳转到该Activity,都会重新创建一个该Activity实例压入栈顶中。例如,现在栈内有 A B C D,在D中,以默认模式启动B,B在以默认模式启动D,则栈情况为:A B C D B D,依次按返回键B D C B A会依次弹出栈而显

2017-05-29 13:07:27 327

原创 Android自定义View之PinnerHeaderListView

PinnerHeaderListView

2017-03-05 16:09:04 414

原创 Android 快速退出应用程序

Android 快速退出应用程序介绍几种快速退出android应用程序的方法

2017-03-05 14:42:16 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除