对于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. matplotlib subplot 子图

    总括 MATLAB和pyplot有当前的图形(figure)和当前的轴(axes)的概念,所有的作图命令都是对当前的对象作用.可以通过gca()获得当前的axes(轴),通过gcf()获得当前的图形( ...

  2. MySQL - INSERT 集合

    范例1: INSERT INTO t_table SELECT ot.* FROM t_other_table ot WHERE ot.is_sent = ? and ot.insert_time & ...

  3. C#语言入门

    1.基础知识 2.数据类型 3.控制语句 4.

  4. 带权并查集:HDU3172-Virtual Friends

    Virtual Friends Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  5. TypeError: cannot use a string pattern on a bytes-like object

    一劳永逸解决:TypeError: cannot use a string pattern on a bytes-like object TypeError: cannot use a string ...

  6. Linux学习-Linux 的开机流程分析

    开机流程一览 系统开机的经过可以汇整成底下的流程的: 加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置; 读取并执行第一个开机装置内 MBR 的 boot Loader (亦 ...

  7. LA 4253 Archery 二分

    题意: x轴上方有若干条平行于x轴的线段 在x轴的区间\([0, \, W]\)内找一点发射一条射线,使其穿过所有线段. 问是否存在这样的点. 分析: 我们二分射线端点的坐标,将线段按纵坐标从小到大排 ...

  8. canvas 动画库 CreateJs 之 EaselJS(下篇)

    本文来自网易云社区 作者:田亚楠 继承 对应原文:Inheritance 我们可以继承已有的「显示对象」,创建新的自定义类.实现方法有很多种,下面介绍其中之一. 举例:实现一个继承于 Containe ...

  9. Selenium WebDriver-下拉框断言

    #encoding=utf-8 import unittest import time import chardet from selenium import webdriver class Visi ...

  10. oracle 可以连接数据库,vs连不上. 报错提示:ORA-12154: TNS: 无法解析指定的连接标识符

    方法1:问题:VS 连接 Data Source=ORCL_Service19;User Id=*;Password=* 连接不上 oracle 可以连接数据库,vs连不上,报错提示:ORA-1215 ...