07
2020
07

Android Intent 的使用

在一个 Android 应用中,主要是由一些组件组成,( Activity,Service,ContentProvider,etc.) 在这些组件之间的通讯中,由 Intent 协助完成。正如网上一些人解析所说, Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述, Android 则根据此 Intent 的描述,负责找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用。 Intent 在这里起着实现调用者与被调用者之间的解耦作用。Intent 传递过程中,
07
2020
07

什么是 ANR 如何避免它 ?

ANR : Application Not Responding ,五秒在 Android 中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时, Android 就会显示 ANR 对话框了:对输入事件 ( 如按键、触摸屏事件 ) 的响应超过 5 秒意向接受器 (intentReceiver) 超过 10 秒钟仍未执行完毕Android 应用程序完全运行在一个独立的线程中 ( 例如 main) 。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发 ANR
07
2020
07

4 种 activity 的启动模式

standard: 标准模式 ,一调用 startActivity() 方法就会产生一个新的实例。singleTop : 如果已经有一个实例位于 Activity 栈的顶部时,就不产生新的实例,而只是调用 Activity中的 newInstance() 方法。如果不位于栈顶,会产生一个新的实例。singleTask : 会在一个新的 task 中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。singleInstance : 这个跟 singleTask 基本上是一样,只有一个区
07
2020
07

Android 中的长度单位详解

现在这里介绍一下 dp 和 sp 。 dp 也就是 dip 。这个和 sp 基本类似。如果设置表示长度、高度等属性时可以使用 dp 或 sp 。但如果设置字体,需要使用 sp 。 dp 是与密度无关, sp 除了与密度无关外,还与 scale 无关。如果屏幕密度为 160 ,这时 dp 和 sp 和 px 是一样的。 1dp=1sp=1px ,但如果使用 px 作单位,如果屏幕大小不变(假设还是 3.2 寸),而屏幕密度变成了 320 。那么原来TextView 的宽度设成 160px ,在密度
07
2020
07

设计模式和 IoC( 控制反转 )

Android 框架魅力的源泉在于 IoC ,在开发 Android 的过程中你会时刻感受到 IoC 带来的巨大方便,就拿 Activity 来说,下面的函数是框架调用自动调用的:protected void onCreate(Bundle savedInstanceState) ;不是程序编写者主动去调用,反而是用户写的代码被框架调用,这也就反转了!当然 IoC 本身的内涵远远不止这些,但是从这个例子中也可以窥视出 IoC带来的巨大好处。此类的例子在 Android 随处可见,例如说数据库的管
07
2020
07

广播接收者生命周期

一个广播接收者有一个回调方法: void onReceive(Context curContext , Intent broadcastMsg )。当一个广播消息到达接收者是, Android 调用它的 onReceive() 方法并传递给它包含消息的 Intent对象。广播接收者被认为仅当它执行这个方法时是活跃的。当 onReceive() 返回后,它是不活跃的。有一个活跃的广播接收者的进程是受保护的,不会被杀死。但是系统可以在任何时候杀死仅有不活跃组件的进程,当占用的内存别的进程需要时。这带
07
2020
07

ListView 优化

工作原理 :ListView 针对 List 中每个 item ,要求 adapter “ 给我一个视图 ” (getView) 。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图? NO! 这不可能!实际上 Android 为你缓存了视图。Android 中有个叫做 Recycler 的构件,下图是他的工作原理:如果你有 10 亿个项目 (item) ,其中只有可见的项目存在内存中,其他的在 Recycler 中。1. ListView 先请求一个 type1
07
2020
07

如何启用 Service ,如何停用 Service

Android 中的服务和 windows 中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:第一步:继承 Service 类public class SMSService extends Service {}第二步:在 AndroidManifest.xml 文件中的 <application> 节点里对服务进行配置 :<service android:name=”.SMSService”
07
2020
07

请介绍下 Android 中常用的五种布局

Android 布局是应用界面开发的重要一环,在 Android 中,共有五种布局方式,分别是:FrameLayout (框架布局), LinearLayout (线性布局),AbsoluteLayout (绝对布局), RelativeLayout (相对布局), TableLayout (表格布局)。1.FrameLayout这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简
07
2020
07

Android 常用控件的信息

单选框 (RadioButton 与 RadioGroup) :RadioGroup 用于对单选框进行分组,相同组内的单选框只有一个单选框被选中。事件: setOnCheckedChangeListener() ,处理单选框被选择事件。把RadioGroup.OnCheckedChangeListener 实例作为参数传入。多选框 (CheckBox):每个多选框都是独立的,可以通过迭代所有的多选框,然后根据其状态是否被选中在获取其值。事件: setOnCheckChangeListener()