最近,在项目过程中频繁的使用handler处理一些ui线程上的操作,以及使用handler的postdealy.然而使用过后却不对handler进行处理,进而产生了内存溢出现象,通过google,发现了解决这一问题的方法.下面贴出项目中的相关代码 /**********************************以下代码解决了handler有可能造成的内存泄漏***************************************************/ private class…
http://blog.csdn.net/zhouzhiwengang/article/details/13022325 在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下. 1.创建一个BroadcastReceiver类的子类,接收定时器事件: public class MyReceiver extends BroadcastReceiver { ...... } 2.在AndroidMenifest.xml中定义上述广播事件接收类的定义: <r…
一.执行打包命令 ionic build android 1.报错: 原因: 其实也并非报错,但是会一直在下载gradle,由于网络或者其他原因,导致下载比较慢, 解决方案: 手动下载gradle,并安装下面方法进行安装和配置:安装完成之后然后打开cmd命令窗口,执行命令: gradle -v 查看是否安装成功: 2.重新build之后,报错如下: Error: Could not find an installed version of Gradle either in Android Stu…
开发中经验会遇到滑动里面嵌入滑动的问题,但是这种情况下触摸事件就会发生冲突.导致滑动非常卡,甚至出现程序停止响应.这种情况下我们一般需要重写view.下面给出重新scrollview的方法 public class CustomScrollView extends ScrollView { private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; public CustomScrollView…
摘要:前几天推广我们APP的时候,有些手机加载引导页的时候会闪退或崩溃,在Bugly显示是OOM异常.    然后Bugly上面显示的解决方案是: 该异常表示未能成功分配字节内存,通常是因为内存不足导致的内存溢出. [解决方案]:OOM就是内存溢出,即Out of Memory.也就是说内存占有量超过了VM所分配的最大.怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),这里列举常见避免OOM的几个注意点: 1.适当调整图像大小. 2.采用合适…
0.引入 0.1.线程间通信的目的 首先,线程间通信要交流些什么呢? 解答这个问题要从为什么要有多线程开始,需要多线程的原因大概有这些 最早也最基本:有的任务需要大量的时间,但其实并不占用计算资源,比如等待外界输入,比如发起网络连接,于是当然就想到完全可以在等待的时候做另一件事,而因为程序都是单线顺序执行的,如何才能同时做两件事呢,那就是开启第二个线程,也就是多线程 对于多核CPU,你把一个任务给多个CPU干,那就只能开多线程 所以就是这两种情况要多线程:一个CPU同时做多件事:多个CPU同时做…
原文地址:http://johnnyshieh.github.io/android/2015/09/03/android-handler-memory-leak/ 在Android中我们经常用Handler来处理异步消息,把非主线程的操作结果放在主线程中更新UI.请思考一下下面的代码有没有问题: public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() {…
Android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类.下面一一介绍: 线程的魔法师 Looper Looper的字面意思是"循环者",它被设计用来使一个普通线程变成Looper线程.所谓Looper线程就是循环工作的线程.在程序开发中(尤其是GUI开发中),我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等…
GitHut 地址: https://github.com/ReactiveX/RxAndroid (1)RxJava简介: RxJava 是一个在Java虚拟机上实现的响应式扩展库:提供了基于observable序列实现的异步调用及基于事件编程. RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者).Observables发出一系列事件,Subscribers处理这些事件. 它扩展了观察者模式,支持数据.事件序列并允许你合并序列,无需关心底…
android的消息处理机制(图+源码分析)——Looper,Handler,Message   作为 一名android程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想.android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了.这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次…