初学Android,可能有些地方可能理解不正确,假设有朋友看到的话麻烦指正我一下,万分感谢。

1. 善用API DEMO,刚開始学习的人的需求基本在里面都能够满足,Eclipse导入API Demoproject出错的话可能原因是SDK版本号过低,将target属性设高就可以,然后prject——clean一下

2. Fragment属于APP,而不是VIEW,这在API Demo中也有体现,由于Fragment不不过为了展示视图,在每个Fragment中还能够对对应事件进行处理等

3. FragmentTransaction类中的addToBackStack(args)方法,是指当用户按下返回键时,系统会将当前该事务内的全部操作退回去,而不是把该事务保存起来

4. 各组件的生命周期非常重要,眼下理解还不是非常深入,过段时间进行专门的补充

5. 当须要一个Context參数时可用getActivity()或者getActivity().getApplicationContext(),由于Activity与Application都继承与Context,Activity指一个活动的窗口,通过Activity能够获得Appliction

6. Fragment中假设要获得Context须要覆写在onActivityCreated()或该生命周期之后的函数中,不然会由于Activity尚未生成进而出现nullpointer异常

7. ConnectivityManager 操作移动数据网络,网上普遍的是通过自己设置正确參数来开启网络,设置错误參数进而关闭网络的方法,此方法不好或者霸道的一点在于当你设置了错误參数进去时用户自己想打开网络都开不了了,所以个人比較支持採用反射的方式来做,之后会參考网上大神写一篇博文。

8. NetworkInfo中的getTypeName()返回的值为小写的,假设有网络的话,同一时候假设当前无网络状态NetworkInfo会为null,记得处理,避免nullpointer异常,匹配网络情况的话避免出错请使用equalsIgnoreCase,忽略大写和小写,此处API 文档上的返回值是大写,自身測试是小写,不知为何

9. String实现了CharSequence接口,所以在须要CharSequence类型变量时直接用String就可以

10. 写在onResume()中的操作可能会被反复调用,这涉及到生命周期问题

————————————————————————————————————————————————————————————————————————————

1. DialogFragment中无法再嵌套子DialogFragment,因为没有使用v4兼容包中的Fragment所以没有getChildFragmentManager,之后会再測试这方法可不能够,setDialogShow()方法再此情况下亦无效,眼下使用AlertDialog.Builder来创建对话框,原因是DialogFragment中的id在我调用的时候事实上尚未被系统所装载,所以会出现no view found的错误,设想假设提前把须要的资源装载应该能够解决这个问题,之后会针对这方面写一篇博文

2. AlertDialog.Builder中的OnClickListener()须要使用DialogInterface中的

3. BroadcastReceiver用于处理针对意图的操作,而Service多用于程序在后台执行处理数据、与用户交互等操作

4. AndroidManifest中的package=""属性指定了R文件生成的位置,也是该程序的唯一标识

——————————————————————————————————————————————————————————————————————————

1.广播接收者使用静态注冊的方式比較好,首先有些Action是仅仅能使用静态注冊的,其次代码注冊仅在程序开启过程中由我们来注冊进而处理一些事情然后在程序结束或者在程序生命周期内的某个特定时候进行关闭时才使用,静态注冊须要注意的一点(这是我自己做项目的过程中一開始没有想到的,也是经验不足的原因)就是有的朋友可能会问那静态注冊了这个广播接收者,它不就一直在后台执行着,一直在处理事情吗,那我不想它处理了怎么办,事实上我们能够通过採用參数的进行控制,比方将一个參数放入SharedPreferences中,然后广播接收者激活时获取一下參数值,依据參数值进行对应的操作

2.SharedPreferences的Mode之前理解错误以为是控制是否复写是否追加,事实上是用来控制该XML配置文件的权限的

3.SVN版本号控制,主开发于trunk文件夹中;branchs用于已公布版本号基础上的bug调整等;tags用于保存公布版本号,此文件夹仅仅读

4.DDMS中是看不到真机中的data文件夹的,由于真机没有赋予DDMS这个权限,可通过adb shell查看

5.PendingIntent中的flags參数 指定PendingIntent的一些行为,比方仅仅开启一次等

6.AlarmManagerService是service执行在systmen_server进程
7.Exported receiver does not require permission指自定义的接收者没有设置权限,设置权限或者 android:exported="false" 即指定该接收者不能跨进程使用

8.AlarmManager 依据PendingIntent的requestcode来进行区分不同的闹钟,依据这个能够用来取消指定的闹钟任务

9.Calendar.getInstance(Locale.CHINA)之后能够获得本地化的数据,比方星期的第一天是星期一等,只是这个我使用了本地化之后get所取到的星期数依然是从星期日開始的,不知为何,之后查到资料了补上

10.ListView的使用一定要记得进行优化(holder优化之后会写一篇博文总结)

11.刷新界面,在Activity中使用广播接收者,创建该Activity时注冊,销毁该Activity时注销,可是这点没有实现出来,之后攻克了专门写一篇博文总结

12.int month = c.get(Calendar.MONTH)+1; 由于算月份时是计算离第一个月差几个月,那么1月就是0

13.重点:AlarmManager.set方法的triggerAtTime假设type选择的是绝对值模式,则要使用目标时间的总毫秒数,而不是目标时间减去当前时间的毫秒数,否则会直接发送intent,由于相减之后的毫秒数代表着好早好早好早曾经就应该发送意图了

_______________________________________________________________________________________________________________________________

1.在布局配置文件里,当权重有垂直时,每个部分的layout_height必须为0dp;当权重为水平时,其每一部分的layout_width必须为0dp

2.使用SVN commit项目的时候bin、gen这类文件夹不用提交,是编译生成的文件文件夹

3.private 类名(){} 把构造函数私有化从而避免用户new

4.能够从sql_master表中获取眼下sqlite中有哪些表进而推断是否须要又一次创建我们须要的表

5.使用OnKeyDown()函数通过參数等方式来做出对后退等事件的处理

6.FragmentTransaction的remove()方法的Fragment类型參数中的fragment能够从碎片栈中通过add时设置的tag获取

7.使用当前的view来findViewById时仅仅能获取当前这个view视图中的资源,使用getActivity()再去find可获得其它视图资源

转载于:https://www.cnblogs.com/mfrbuaa/p/4072299.html

Android 学习历程摘要(一)相关推荐

  1. Android 学习资源收集

    在开始讲述之前,你应该先看一下世界各地的开发人员是如何推荐的,他们自己学习Android时又是用的什么资源.这里我们将Quora和Reddit上针对Android应用开发学习所推荐的优秀资源做了快速总 ...

  2. Android开发未来的出路何在,android学习路线图

    Android开发的现状 目前,移动开发已经处于饱和的阶段,Android开发也不如当年盛况,已经不再像前几年前那么火爆.正如一种编程语言如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲 ...

  3. Airtestpoco学习历程1——设备连接

    Airtest&poco学习历程1 一.设备连接 详情参考网易airtest官网教程 以下为网页原文: 模拟器连接:以网易的mumu模拟器为例 https://airtest.doc.io.n ...

  4. Android学习笔记——Android 签名机制详解

    Android 签名机制详解 近期由于工作需要在学习 Android 的签名机制,因为没有现成资料,只能通过开发者文档和阅读博客的方式对 Android 签名机制进行大致了解.过程中查阅到的资料相对零 ...

  5. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  6. Android学习资源大全

    整理了一些 Android 的博客链接.学习资源网站.站在巨人的肩膀上,会看得更远.整理这一份资源也方便更多的Android开发者能享受到技术分享的力量.首先,在这里要感谢所有开源项目的作者,感谢Tr ...

  7. android学习路线:如何成长为高级工程师

    前言 之所以写这篇文章,是因为最近博客和我的开发群( 215680213 )中,不少小伙伴都让我讲讲android学习路线,所以我决定写一篇博客,来说明这个问题.既然有不少小伙伴来咨询这个问题,说明大 ...

  8. Android学习路线推荐

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 (https://www.diycode.cc/wiki/androidbook) 很多时候我们都会不断收到新手的提问"Andr ...

  9. Kotlin学习历程——对象声明与伴生对象

    Kotlin语言中文站 对象声明 如下代码写法称为对象声明: object UserInfoManager {//用户类型val userType : Int = 0//获取用户登录信息fun get ...

最新文章

  1. 人工智能的学习经验总结!
  2. R可视化包ggplot2设置轴范围
  3. cmd运行java文件_Java基础 前传
  4. 虚拟机类加载机制---类加载器
  5. JAVA 求数组中的最大值
  6. SQLite.NET.0.17 的离奇之处, BUG??? BY DESIGN??
  7. sql 2005分区表
  8. P4592 [TJOI2018]异或 (可持久化Trie)
  9. python sklearn库 rnn_如何使用Tensorflow计算RNN和LSTM模型的AUC并生成ROC曲线?
  10. 十二、java知识点——类加载机制(硬货)
  11. Nginx 限制某 IP 在一段时间内对服务器发起请求的连接数
  12. Hibernate---简介
  13. Spring源码之ApplicationContext(一)
  14. 小学数学计算题随机出题软件
  15. Interesting Finds: 2008.04.18
  16. Android应用方法数查看,查看size是否超过65k
  17. ajax上传图片的方法,ajax上传图片的方法
  18. 并联机构工作空间求解_结构计算软件—结构力学求解器
  19. IE浏览器清除缓存及历史浏览数据
  20. yamada算法_脉宽调制中的颤振算法

热门文章

  1. 支付宝支付 第十集:支付回调
  2. Thread\Threading.Timer\Task中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”
  3. zipparameters 使用_JAVA利用Zip4j解压缩【转】
  4. python源代码的后缀名是_Python代码编译与反编译
  5. json schema多种形式_什么是JSON Schema?
  6. 同一张表两方各字段相同_SQL高级知识——派生表
  7. gdiplus判断一个点是否在圆弧线上_上挑眼型会更显老吗?杨丞琳和张雨绮示范了2条不同路线...
  8. 同软件多个线程设置不同ip_5-13网络编程(附带多线程死锁,线程通信)
  9. hive olap 数据仓库_数据仓库那些事儿
  10. ipad如何连接电脑_超能办公课堂丨电脑如何使用无线网络连接方式安装驱动程序...