分类 Android 下的文章

Android IntentService的简单使用

IntentService简介

IntentService是Service的子类,比普通的Service增加了额外的功能。先看Service本身存在两个问题:

  • Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中;
  • Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务;

IntentService特征

  • 会创建独立的worker线程来处理所有的Intent请求;
  • 会创建独立的worker线程来处理onHandleIntent()方法实现的代码,无需处理多线程问题;
  • 所有请求处理完成后,IntentService会自动停止,无需调用stopSelf()方法停止Service;
  • 为Service的onBind()提供默认实现,返回null;
  • 为Service的onStartCommand提供默认实现,将请求Intent添加到队列中;

以上内容引用自Android:IntentService的使用

- 阅读剩余部分 -

探索 单个Fragment实现沉浸式,其余Fragment不实现的解决办法

需求

MainActivity中包含五个Fragment,但是只要求HomeFragment实现沉浸式,其余Fragment不实现沉浸式,保持原来的模样

注意:仅Android21及其以上系统支持

思路

前提:沉浸式只能作用在Activity上!

思路1

思路步骤

  1. 使MainAcitivity实现沉浸式,此时所有Fragment页面都将实现沉浸式;
  2. 为每一个Fragment页面新增一个View,此处需要注意布局方式(FrameLayout布局可能比较难处理);
  3. 为每一个Fragment实现新增View的高度和背景色。

- 阅读剩余部分 -

实现“Library只在Debug包中使用,Release包中自动去除”功能

目的

本文旨在实现“Library只在Debug包中使用,Release包中自动去除”功能!

背景

举个栗子:

LeakCanary是一个便捷的检测内存泄露的Library,但是我们只能在Debug包中使用它,上线之后需要移除它,因此需要在Release包中移除。

如果不通过一些手段的话,我们只能在上线的时候通过手动注释的方式移除它,但是这样有两个弊端:首先容易忘记,其次如果需要移除的Library比较多,就比较麻烦了!

所以,下面就教大家怎么实现Release包中自动移除不需要的Library的功能!

- 阅读剩余部分 -

Android开发记录

好久没有写文章了,然后回顾了之前的文章,发现自己竟然从未总结过Android开发过程中的点点滴滴,于是就最近遇到的Java和Android的基础问题进行总结。

- 阅读剩余部分 -