Android开发最佳实践《IT蓝豹》

Android开发最佳实践

 
移动开发Android经验分享应用GoogleMaterial Design
摘要:前 段时间,Google公布了Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的Android Design Support Library来快速实现官方推荐的Material Design样式的应用。

10月14日-16日,由CSDN和创新工场联合主办的MDCC 2015中国移动开发者大会将在北京新云南皇冠假日酒店隆重召开,现在抢注大会门票,即享多重好礼!猛戳>>立即抢票。本文作者,平台与技术Android专场演讲嘉宾——腾讯Android工程师 胡凯热爱开源与分享,维护Android官方培训课程协作项目,关注Android应用的性能优化的总结与分享,推崇Android官方最佳实践。



前段时间,Google公布了 Android开发最佳实践的一系列课程,涉及到一些平时开发过程中应该保持的良好习惯以及如何使用最新的 Android Design Support Library来快速实现官方推荐的Material Design样式的应用。下面是个人的学习摘要总结,不对的地方请多多交流指点,谢谢!

1)注意对隐式Intent的运行时检查保护

类似打开相机,发送图片等隐式Intent,是并不一定能够在所有的Android设备上都正常运行。例如打开相机的隐式Intent,如果系统相 机应用被关闭或者不存在相机应用,又或者是相机应用的某些权限被关闭等等情况都可能导致这个隐式的Intent无法正常工作。一旦发生隐式Intent找 不到合适的调用组件的情况,系统就会抛出ActivityNotFoundException的异常,如果我们的应用没有对这个异常做任何处理,那应用就 会发生Crash。

预防这个问题的最佳解决方案是在发出这个隐式Intent之前调用resolveActivity做检查,关于这个API的解释以及用法如下:


然后这个API的使用范例如下:

[java]view plaincopy
  1. Intent intent = new Intent(Intent.ACTION_XXX);  
  2. ComponentName componentName = intent.resolveActivity(getPackageManager());  
  3. if(componentName != null) {  
  4.     String className = componentName.getClassName();  
  5. }  

2)使用NotificationCompat兼容包来处理消息通知

为了解决Android系统版本差异导致的Notification兼容性问题,Android官方提供了 NotificationCompat兼容类来帮助开发实现体验统一的Notification。通常来说,建立一个Notification至少会有三 种元素:图标,标题,文本。我们通常会使用如下的代码来实现一个基础的Notification功能:


上面那段代码,运行时候的效果应该如下所示:


为了给上面的Notification添加点击之后的响应效果,我们还需要构造一个PendingIntent作为contentIntent,例如:

[java] view plaincopy
  1. PendingIntent intent = xxx;  
  2. builder.setContentIntent(intent);  

为了使得Notification更加的具有辨识度,我们还有可能做如下的设置:


从Android 4.1开始,Notification可以支持展开显示的模式,这样一来,Notification就演变出了下面4种不同的风格样式:


Notification还提供了快捷操作的功能,如下图所示:



除了显示在手机上的Notification,我们还可以给Notification分别设置在Wearable,Auto上的不同表现行为,例如针对可穿戴设备上显示Notification,我们可以如下的设置:


关于更多的Wearable上的Notification相关的知识,还可以参考 Pages of Content与 Stackable Notifications。

转载于:https://www.cnblogs.com/yangguangcheng/p/4866244.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET MAUI 已在塔架就位 ,4月份发布RC

最美人间三月天,春光不负赶路人。在充满无限希望的明媚春天里,一路风雨兼程的.NET 团队正奋力实现新的突破。根据计划,新一代移动开发平台MAUI 将于4月份 发布RC。目前,MAUI的测试工作和火箭发射前各项准备工作在github 上按计划有…

如何把照片正面变成反面_没有锁边机如何做衣服(五种方法)

这么多年一直没有锁边机,但是也做了很多衣服,今天给大家分享一些我曾经用过的方法。来去缝来去缝适合缝制轻薄面料,如雪纺、真丝、欧根纱等。反反相对,缝份0.5厘米把缝份剪掉0.2厘米翻过来使正面相对,留0.5厘米的缝份车…

C和指针之结构体大小和成员变量位置距离结构开始存储的位置偏移字节

1、问题 1)、结构体大小 结构体成员的内存分配满足下面三个条件 2 结构体第一个成员的地址和结构体的首地址相同 3 结构体每个成员地址相对于结构体首地址的偏移量是该成员大小的整数倍,如果不是则编译器会在成员之间添加填充字节 4 结构体总的大小要是其成员中最大si…

linux线程池资料

2019独角兽企业重金招聘Python工程师标准>>> http://www.360doc.com/content/13/0728/13/13308646_303116654.shtml http://blog.csdn.net/turkeyzhou/article/details/8755976 http://blog.csdn.net/zhoubl668/article/details/8927090 http://blog.csdn.net/zypue…

算法笔记_226:填符号凑算式(Java)

目录 1 问题描述 2 解决方案 1 问题描述 匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行…

design短语的用法总结_design的意思、用法、搭配和例句

designvi. vt.设计;计划;构思;n.设计;图案;构思design sth. to do打算做……be designed to do目的是……be designed for sb. / sth.打算给(做)……用be designed as sth.打算当作……He designed us a poster.他为我…

WPF初学——自定义样式

在WPF开发界面的过程中,经常会遇到多个相同种类的控件样式也是统一的,但是要一个一个地去设置,即使是复制粘贴都嫌累,所以翻了些书,网上度娘了一些材料,发现WPF有很容易的方式解决我的纠结,那就…

Xamarin效果第二篇之公众号App

前面简单摸索一下Xamarin然后简单做了一个时间轴;这不这几天再次基于Xamarin实现了一下公众号App;我也就是瞎折腾,闲话不多扯,上效果:主Page直接用TabbedPage(类似WPF中的TabControl)然后后台添加内容Page:”互动“页使用CollectionView和模板选择器:"发表&quo…

C和指针之联合体大小

1、联合体的特点和大小 union是共用一个内存首地址,联合体中每个成员的地址都相同,等于联合体变量的首地址 联合体的大小足够容纳最宽的成员,大小能被其包含的所有基本数据类型的大小所整除 2、测试Demo #include <stdio.h>union var {long int a;int b; };union size…

新的斐波那契数列

转载请标明出处&#xff1a;牟尼的专栏 http://blog.csdn.net/u012027907 Problem1&#xff1a; 题目描写叙述&#xff1a; 定义一个新的斐波那契数列&#xff1a; F(0)7。 F(1)11; F(n)F(n-1)F(n-2);(n>2) 输入&#xff1a; 输入有多组&#xff1b;首先输入一个N&…

怎样做外贸生意 ?

怎样做外贸生意 &#xff1f;最近很多朋友都找我咨询&#xff0c;问是都是怎样做外贸生意&#xff0c;虽说本人已转行做教育&#xff0c;但是今天还是很想来跟大家分享下做外贸做了十几年的经验。很多人会觉得外贸离自己很遥远很高大上&#xff0c;以为只有非常有实力的企业才能…

K8S原来如此简单(一)K8S核心组件与基本原理

k8s视频课程K8S核心组件与工作原理k8s官方文档&#xff1a;https://kubernetes.io/zh/docs/home/前提掌握容器技术&#xff1a;Docker&#xff0c;Containerd等K8S优势使用简单&#xff0c;少量人/小团队可以轻松维护大型分布式系统全面拥抱微服务架构&#xff0c;快速迭代&…

php 判断update返回为0_PHP进行数据库更新update操作,返回状态

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":7,"count":7}]},"card":[{"des":"提供基于开源Elasticsearch及商业版X-Pack插…

Web Storage中的sessionStorage和localStorage

html5中的Web Storage包括了两种存储方式&#xff1a;sessionStorage和localStorage。 sessionStorage用于本地存储一个会话&#xff08;session&#xff09;中的数据&#xff0c;这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage…

Eclipse运行项目报Could not find *.apk!解决办法

1、问题 运行Eclipse跑Android项目的时候&#xff0c;出现下面提示 Could not find *.apk 然后Eclipse里面错误提示说 找不到AndroidManifest.xml这个文件 2、解决办法 网上很多办法&#xff0c;build项目&#xff0c;还是不行&#xff0c;我特么之前也没有遇到过呀&#…

wos 文献被引_WoS和ESI数据库高被引论文的界定.pdf

WoS和ESI数据库高被引论文的界定.pdf*基于Web of Science 和ESI 数据库高被引论文的界定方法刘雪立 收稿日期:20 12-07 -30修回日期:20 12-10-08&#xff0c; 《 》 &#xff0c;453003 &#xff0c;E-mail :liueditor 163 &#xff0e; com河南省科技期刊研究中心 新乡医学院期…

docker supervisor管理进程

Supervisor管理进程Docker容器在启动的时候开启单个进程&#xff0c;比如&#xff0c;一个ssh或者apache的daemon服务。但我们经常需要在一个机器上开启多个服务&#xff0c;这可以有很多方法&#xff0c;最简单的就是把多个启动命名放到一个启动脚本里面&#xff0c;启动的时候…

Oracle笔记 三、function 、select

Scott表下有这么几个常用的表&#xff0c;而且还带有数据。分别是emp、dept、salgrade&#xff1b; 1、查看表结构用desc desc emp; 2、空表dual&#xff0c;最常用的空表&#xff0c;如&#xff1a; select 2 * 4 from dual; select sysdate from dual; 3、双引号能保持格式 如…

C和指针之动态内存分配malloc、calloc、realloc简单使用和区别

1、介绍 3个函数都在<stdlib.h>头文件1&#xff09;、void* malloc(unsigned size);在内存的动态存储区中分配一块长度为size字节的连续区域&#xff0c;参数size为需要内存空间的长度&#xff0c;返回该区域的首地址&#xff0c;这里我们需要主要如果申请失败返回空指针…

理解Linux系统中的load average

一、什么是load average&#xff1f;linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均…