关闭

[置顶] Android开发笔记

1、 IntentService是一个异步的Service,会在该Service里用Handler创建一个线程做处理,处理完成后会停止该线程并终止该Service。 注意:创建IntentService的时候,不要重写onStartCommand()方法,重写可能导致出错。 要重写onHandleIntent()方法。...
阅读(382) 评论(0)

Android 在页面中显示打包日期

项目有需求,要求在app里显示安装包打包的日期,我的想法是: 1,在build.gradle中定义打包的日期变量。 2,在app里引用BuildConfig文件自动生成的变量并显示。 实现如下: 先在Build.gradle中定义得到打包时间的方法,在文件内容最外层定义: def static releaseTime() { return new Date().forma...
阅读(16) 评论(0)

Android应用结束自身进程的方法

有时候app中会有这样的需求:在某个时机触发后,程序需要销毁所有页面和后台服务,主动结束整个进程。怎么实现呢?管理activity一种方法是:在项目架构搭建时,就可以创建一个BaseActivity,让app的所有页面都继承它,然后用一个List去管理所有的activity,每打开一个activity,就将它添加到list中,activity销毁,则从list中移除。 这样当我们想销毁所有页面时,...
阅读(28) 评论(1)

Android 用文件存储数据

存储数据示例: private void saveFileData() { BufferedWriter writer = null; try { FileOutputStream out = openFileOutput("data", MODE_PRIVATE); writer = new BufferedWr...
阅读(94) 评论(0)

SharedPreferences实现数据存取

练习SharedPreferences的使用:存数据: SharedPreferences sp = getSharedPreferences("data", MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("name", "lala");...
阅读(67) 评论(0)

Java 序列化方式实现深克隆

// 用序列化与反序列化实现深克隆 private Object deepClone(Object src) { Object o = null; try { if (src != null) { ByteArrayOutputStream baos = new B...
阅读(58) 评论(0)

Android 用HttpURLConnection访问网络

一、 HttpURLConnection以GET方式访问网络 二、 HttpURLConnection以POST方式访问网络...
阅读(80) 评论(0)

AlarmManager延时任务不生效

今天在实现一个延时任务时用到了AlarmManager, 想用它实现5秒后打开一个activity的操作。大概代码如下: Intent intent = new Intent(this, Main2Activity.class); PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);...
阅读(119) 评论(0)

用ViewHolder优化显示性能

使用adapter对ListView,GridView等进行适配时,要重写它的getView()方法。 下面是一个简单的示例,从本博客的上一篇文章Android launcher应用的简单实现粘贴过来: @Override public View getView(int i, View view, ViewGroup viewGroup) { /...
阅读(124) 评论(0)

Android launcher应用的简单实现

本篇文章将实现一个简单的可替代系统桌面的launcher应用。 此应用应该具有如下功能: 1. 自定义的桌面应用能够被设置为系统的默认桌面,替代原有桌面。 2. 系统桌面上的app图标能够排列在我们的自定义桌面上。 3. 点击自定义桌面上的app图标,能够打开对应的app。下面就看看具体实现: 新建一个空项目,命名为LauncherTest,然后打开项目的manifest文件: 一般情况...
阅读(151) 评论(0)

ViewPager基本用法

ViewPager是由v4包提供的一个组件,可实现像桌面那样左右滑动显示多页内容的效果,我们经常看到的一些app打开时的导航页面就可以用ViewPager实现。要使用ViewPager,得先将supportv4包导入项目,这一步就不讲了。 下面看看如何使用:首先新建一个项目,在activity的布局文件里加入ViewPager组件:<?xml version="1.0" encoding="utf...
阅读(144) 评论(0)

Android 用ViewPager实现加载两个webview的可滑动Tab页

先看下最终效果: 同一个页面里,有两个Tab页,分别加载两个不同的网页,可以通过点击页面顶部Tab或者左右滑动来切换Tab。被选中的tab颜色会变化。 下面看下如何实现: 1. 首先是这个页面的布局文件: <LinearLayout xmlns:android="http://schemas.android.com/...
阅读(201) 评论(0)

List的removeAll()方法与equals()方法之坑

最新在项目中遇到一个坑,大概如下:public class MainTest { public static void main(String[] args) { //创建一个List1对象,添加四个元素 List list1 = new ArrayList<>(); Operator op1 = new Operator(0...
阅读(189) 评论(0)

Android 项目中ButterKnife的基本使用

ButterKnife是一个开源的Android框架,方便的view绑定注解功能,可以省去大量的findViewById和setOnClickListener等代码,使开发更高效。下面就看看如何在Android Studio项目中配置使用ButterKnife:第一步:在Project的build.gradle中添加如下代码:buildscript { repositories {...
阅读(717) 评论(0)

Java volatile关键字实例

volatile关键字能保证可见性和有序性,但是不保证原子性。因此并不能保证线程安全。 看一个相关的例子:双重校验锁实现的单例模式:public class DoubleCheckSymbol { private static volatile DoubleCheckSymbol d; private DoubleCheckSymbol() {} public static...
阅读(130) 评论(0)

Android drawable图标的匹配顺序

通常在做适配时,为了适配不同分辨率的屏幕,对于App图标(命名为icon.png),我们会在drawable, drawable-mdpi,drawable-xhdpi等文件夹下都放上同名,不同大小的图标。分辨率与图标大小对应如下:LDPI (Low Density Screen,0~120 DPI),其图标大小为 36 x 36 px。 MDPI (Medium Density Screen, 1...
阅读(220) 评论(0)
66条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:52635次
    • 积分:1151
    • 等级:
    • 排名:千里之外
    • 原创:64篇
    • 转载:2篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论