- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Android ContentProvider的启动过程
ContentProvider使用步骤:1、ContentSolver contentResolver = getContentResolver()2、contentResolver.insert();(还有其他三种方式)首先getContentResolver()的过程如下:getContentResolver()是属于context的一个抽象方法,具体的实现在(Contex
2017-10-23 11:52:38 689
原创 Android sendBroadcast的过程分析
发送广播的过程分两步完成第一步 AMS收到广播之后找到对应的广播接收者并把他们添加到一个广播调度队列中,这个步骤包含两个过程:1、广播发送者把特定的广播发送给ActivityManagerService2、AMS收到广播之后找到对应的广播接受者并把他们添加到一个广播调度队列中,在将这个队列传递给BroadcastQueue,最后向消息队列发送一个BROADCAST_INTENT_MSG
2017-10-20 12:07:57 3040
原创 Android Broadcast注册过程
Broadcast 注册有两种方式:1、静态注册(即在AndroidManifest.xml)中注册广播;2、动态注册(即在代码中registerReceiver())下面分别介绍两种广播注册的过程静态注册过程:在系统服务启动时会添加PackageManagerService,在该类的构造方法中就会对各个应用安装的目录的apk文件进行扫描解析,具体过程如下补充:1、在(Pa
2017-10-19 11:02:17 604
原创 Android Service的启动过程
再讲service启动之前先讲两个概念:1、context、contextWrapper、contextImpl的关系ContextWrapper、ContextImpl都是继承自Context,像我们调用startService()就是调用ContextWrapper里面mBase.startService() mBase是ContextWrapper的实例,所以startServ
2017-10-18 18:28:08 360
原创 Android Activity的启动过程
这篇文章是记录我对于activity的启动流程的一个大致记录,不会有太详细的代码解析Activity 其实只是一个普通的类,是因为ActivityThread会在不同的阶段回调Activity的onCreate onResume方法,从而让Activity有生命周期;apk的启动是从ActivityThread的main()方法开始的,main()建立了主线程的looper,并把对
2017-10-10 15:16:51 404
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-09-14 10:05:19 159
转载 Android tcp/ip socket http的理解
网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层:1、 物理层 该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。2、数据链路层 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理
2017-07-28 16:50:15 635
原创 activity FLAG_ACTIVITY_NEW_TASK启动疑问
当在一个的activity以FLAG_ACTIVITY_NEW_TASK的方式启动另一个已经启动的activity时,需要设置intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setAction(Intent.ACTION_MAIN);否则将要打开的activity会重走一遍onCreate(),加上之后会直接调用之前的acti
2017-07-15 14:45:17 1328 1
原创 widget的加载过程
widget的回调的步骤:当你添加widget到桌面的时候如图所示先收到APPWIDGET_ENABLED 广播,然后系统回调OnEnabled()方法然后收到APPWIDGET_UPDATE广播,然后系统回调OnUpdate()方法最后是收到APPWIDGET_UPDATE_OPTIONS广播
2017-07-11 19:48:36 427
原创 BroadcastReceiver、EventBus的优缺点及使用场景
本地广播是相对消耗时间、空间最多的一种方式,但是大家都知道,广播是四大组件之一,许多系统级的事件都是通过广播来通知的,比如说网络的变化、电量的变化,短信发送和接收的状态,所以,如果与android系统进行相关的通知,还是要选择本地广播;在BroadcastReceiver的 onReceive方法中,可以获得Context 、intent参数,这两个参数可以调用许多的sdk中的方法,而eventb
2016-11-11 11:08:50 7140
转载 Activity生命周期
近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实Android中的Activity运行机制跟servlet有些相似之处,A
2016-10-31 17:23:51 275
转载 如何安全退出已调用多个Activity的Application?
对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用killProcess()和System.exit()这样的方法。但是,对于多Activity的应用来说,在打开多个Activity后,如果想在最后打开的Activity直接退出,上边的方法都是没有用的,因为上边的方法都是结束一个Activity而已。当然,网上也有人说可以。就好像有人问,在
2016-03-04 09:42:49 291
转载 android-Service和Thread的区别
servie是系统的组件,它由系统进程托管(servicemanager);它们之间的通信类似于client和server,是一种轻量级的ipc通信,这种通信的载体是binder,它是在linux层交换信息的一种ipc。而thread是由本应用程序托管。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2
2016-03-02 13:58:17 232
转载 Java Serializable(序列化)的理解和总结
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候
2016-02-24 14:08:04 272
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人