对于Application、 Activity、 Notification、 BroadCast、 Service 这些组件的使用,对象的实例化问题各有不同,如何实例化以及在什么时候实例化也所有不同。

一、如何实例化

【应用程序】Application:回调OnCreate()方法实例化

【活动】Activity:回调【生命周期】实例化

【通知】Notification:需要实例化【关键字new】

【广播】BroadCast:【系统自动实例化】在Androidmainfest.xml中注册即可,获取不了广播对象。【手动实例化】new关键字,用java代码程序注册,但是最后必须程序注销

【服务】Service:【系统自动实例化】为开始服务,获取不了服务对象。【手动实例化】在Androidmainfest.xml注册,为绑定服务,可以获取服务对象,通过服务链接对象,链接成功后,可获取服务类的内部类对象,该内部类继承自IBinder,内部类用于获取服务类对象。【代理模式】

二、在什么时候实例化

【应用程序】Application:项目启动的时候实例化结束

【活动】Activity:活动界面出现的时候实例化结束

【通知】Notification:只有手动实例化,通过关键字new,但是该对象不可使用,需要通知服务管理NotificationManager对象notifity()方法发出通知,同时带一个ID

【广播】BroadCast:【手动实例化】new关键字实例化结束,但是该对象不可使用,只有使用registerReceiver()方法注册该广播的时候对象才可使用,而广播只有上下文可才能注册,发送广播可由上下文和PendIntent发送。【自动实例化】项目启动结束实例化,广播对象可使用

【服务】Service: 【手动实例化】项目启动没有实例化,在第一次context.bindService()才实例化,同时实例化的服务对象采用代理模式获取,以后再次调用该方法绑定服务都不会再次实例化,而每次绑定服务都只会执行一次onBind()周期,最后一个活动解绑会执行unBind()周期,服务结束。【自动实例化】项目启动没有实例化,在第一次context.startService()才实例化,获取不了该实例化对象,以后再次开启都不会实例化,每次开启服务都不会startCommand()周期。

Android组件实例化问题的更多相关文章

  1. Android组件的通讯——Intent

    转载:Android组件的通讯-Intent 1.概述 一个应用程序的三个核心组件——activities.services.broadcast receivers,都是通过叫做intents的消息激 ...

  2. Android组件生命周期(二)

    引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...

  3. 蘑菇街Android组件与插件化

    插件化的基石 -- apk动态加载 随着我街业务的蓬勃发展,产品和运营随时上新功能新活动的需求越来越强烈,经常可以听到"有个功能我想周x上,行不行".行么?当然是不行啦,上新功能得 ...

  4. android 组件使用()

    程序入口点 类似于win32程序里的WinMain函数,Android自然也有它的程序入口点.它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activ ...

  5. Android组件化方案

    Android组件化项目地址:Android组件化项目AndroidModulePattern Android组件化之终极方案地址:http://blog.csdn.net/guiying712/ar ...

  6. 【Android开发日记】之入门篇(十二)——Android组件间的数据传输

    组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...

  7. 【Android开发精要笔记】Android组件模型解析

    Android组件模型解析 Android中的Mashup 将应用切分成不同类别的组件,通过统一的定位模型和接口标准将他们整合在一起,来共同完成某项任务.在Android的Mashup模式下,每个组件 ...

  8. 2015最流行的Android组件、工具、框架大全

    Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...

  9. Android组件化

    附:Android组件化和插件化开发 App组件化与业务拆分那些事 Android项目架构之业务组件化 Android组件化核心之路由实现 Android组件化开发实践

随机推荐

  1. cena 测评机下载地址

    以下是cane的下载地址,现在分享给你们,希望有所帮助 下载地址百度云:https://pan.baidu.com/s/1JBXiVSZy-jhIc0V-F2ESPA 密码:hgtk 点击下载即可. ...

  2. 简单的C++ DLL注入

    今天呢,我们来讨论一下用C++实现DLL注入的简单方法. 环境: Visual Studio 2015及以上 Windows 7及以上 入门需要了解的: DLL是什么:DLL_360百科 DLL是Dy ...

  3. destoon后台权限-不给客户创始人权限并屏蔽部分功能

    1.根目录下后台入口文件admin.php $_founder = $CFG['founderid'] == $_userid ? $_userid : 0;  //  $CFG['founderid ...

  4. destoon修改笔记

    $EXT = cache_read('module-3.php');  $EXT,存放了module3的设置 后台模型管理,扩展模型 里设置.     1.admin.php 后台管理项目对应文件. ...

  5. 编译与安装 OpenSSL

    编译与安装 OpenSSL prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库.linux版的OpenSSL下载地址为:https:/ ...

  6. leetcode-11-dfs

    DFS算法: explore(G, v) visited(v) = trueprevisit(v) for each edge(v, u) in E: if not visited(u): explo ...

  7. python数据类型之元组(tuple)

    元组是python的基础类型之一,是有序的. 元组是不可变的,一旦创建便不能再修改,所以叫只读列表. name = ('alex', 'jack') name[0] = 'mark' # TypeEr ...

  8. debian软raid

    http://www.linuxidc.com/Linux/2013-06/86487.htm  

  9. SQL_5_子句

    接下来讲到的子句有: WHERE STARTING WITH ORDER BY GROUP BY HAVING WHERE: 使用频率仅次于SELECT和FROM STARTING WITH: 附加于 ...

  10. CodeForces 500E New Year Domino

    题意: 从左到右排列着\(n\)个多米诺骨牌,它们分别站在\(x\)轴上的位置\(p_i\)上且高度为\(l_i\). 当第\(i\)个多米诺骨牌向右倒下时,如果\(p_i < p_j \leq ...