所有的活动必须要实现onCreate()去做一些初始化的设置,当对象第一次实例化的时候。很多活动也会实现onPause()去提交数据修改或准备停止与用户交互。...一个活动在onCreate()中做所有的“全局”状态的初始设置,在onDestroy()中释放所有保留的资源。...在这期间,频繁地在重用和暂停状态转换——例如,当设备进入睡眠状态或一个新的活动启动时调用onPause(),当一个活动返回或一个新的意图被传输时调用onResume()。...因此活动是可杀掉状态,例如onPause()返回到onResume()调用期间。直到onPause()再次返回,活动是不可杀掉的。...的邮递员:Intent Android基本设计理念是鼓励减少组件间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent
4.0 创建或向活动发送意图时,请务必遵循以下规则。...开发人员经常假设,应该是私有的活动不会受到攻击,但有必要将这些活动显式设置为私有,以阻止恶意内容被收到。 AndroidManifest.xml 活动所具有的 Affinity 决定。 另一方面,对于根活动以外的活动,活动所属的任务不仅仅取决于 Affinity,还取决于活动的启动模式。...公共活动必须接受来自不受信任来源的返回意图,因此在访问公共活动时,返回的意图实际上可能是由恶意软件发送的。 人们往往错误地认为,私有活动返回的所有内容都是安全的,因为它们来源于同一个应用。...此外,根据实现,向伙伴或内部活动发送意图时,也存在各种信息泄漏的风险。 即使将数据发送到私有活动,也存在风险,意图中的数据可能通过LogCat泄漏。
、片段、视图、意图、服务和内容提供者 活动(Activity),是一个用户界面屏幕。...应用可以定义一个或多个活动,用于处理应用程序的不同阶段。 片段(Fragment),是活动的一个组成部分,通常显示在屏幕上,但并非必须如此。通过片段,能够使应用轻松适应不同尺寸屏幕。...视图(View),是最小的用户界面单元,可以直接包含在活动中,也可以包含在活动的片段中。视图可以用Java代码创建,但更好的方式是使用XML布局来定义。...意图(Intent),是一种行为描述机制(如选择照片,打电话等)。在Android中,几乎一切都是通过意图来实现的,这给我们提供了大量替换或重用组件的机会。...服务(Service),是运行在后台的任务,无需用户直接与之交互。 内容提供者,是一组数据和用于读取它们的自定义API,这是在应用之间共享全局数据的最好方法。
其最重要的用途是开展活动,在活动中它可以被认为是活动之间的胶水。它基本上是一个被动的数据结构,对要执行的动作进行抽象描述。...这是通过的过程中处理的意图的分辨率,其中意图映射到Activity,BroadcastReceiver 或者 Service(或有时两个或两个以上的活动/接收器),其可以处理它。...被支持的类型是用标签给出的,其中 vnd.android.cursor.dir/vnd.google.note是一个URI,从中vnd.android.cursor.dir可以找到零或多个items()...此活动的次要用途是将新的笔记条目插入到现有的笔记目录中。...标准活动行动 这些是意图为启动活动定义的当前标准动作(通常是通过startActivity(Intent)。)。最重要,也是最常用的,是ACTION_MAIN和 ACTION_EDIT。
然而,在图5所示的独热码状态机的情况下,复位信号的时序却的的确确成为了系统正常工作的关键因素之一。 ? 图5 独热码状态机的复位 图5 的例子中演示了一个简单的的独热码状态机的复位示意图。...如果第一个含有独热码的触发器比第二个触发器提前释放一个时钟周期,则其含有的独热码将丢失,整个状态机将永远进入无效状态(cold)。...图7给出了一个这种局部复位的示意图。这种电路的优点在于,它所提供的复位效果与外接全局复位信号的效果是一致的。 ? 图7 局部复位示意图 在器件配置或者异步复位时,链中的所有触发器都被预设为1。...随着全局复位/置位信号或异步复位信号的释放,整个移位寄存器链开始在每个时钟周期被填充为0。 链中触发器的数目决定了局部复位网络所需要的复位脉冲的最小宽度。...绝大多数情况下,重配置或者上电过程中,所有的触发器和RAM等都可以被预设初始状态,所以全局复位是完全没有必要的,因为所有的信号都已经具有明确的初值!
如果定义了任何意图过滤器,则该活动是公开的;否则它是私有的。...不应该使用未定义的意图过滤器和导出属性false的原因,是 Android 的行为存在漏洞,并且由于意图过滤器的工作原理,其他应用的活动可能会意外调用它。下面的两个图展示了这个解释。...图 4.1-4 是一个正常行为的例子,其中私有活动(应用 A)只能由同一个应用的隐式Intent调用。 意图过滤器(action ="X")被定义为仅在应用 A 内部工作,所以这是预期的行为。...发送到任务的根Activity的意图,被添加到任务历史中。 根活动是在任务中启动的第一个活动。 任何应用都可以通过使用ActivityManager类,读取添加到任务历史的意图。...这里的问题是,任务的活动实例以singleInstance启动,当以“标准”调用的Activity的 Affinity 与任务相同时,新任务的生成受到现有的singleInstance 活动的限制。
android.app.Activity类:因为几乎所有的活动(activities)都是与用户交互的,所以Activity类关注创建窗口,你可以用方法setContentView(View)将自己的UI...然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另外一个活动中。...有两个方法是几乎所有的Activity子类都实现的: onCreate(Bundle):初始化你的活动(Activity),比如完成一些图形的绘制。...一个典型的例子是一个媒体播放器播放一个播放列表中的歌曲。该播放器应用程序将可能有一个或多个活动(activities),允许用户选择歌曲和开始播放。...所有的接受者继承自BroadcastReceiver基类。 BroadcastReceiver类: 是接受sendBroadcast()发送的意图(intents)的基类。
4.0 实现认证器应用时,遵循下列规则: 5.3.2.1 提供认证器的服务必须是私有的(必需) 前提是,提供认证器的服务由账户管理器使用,并且不应该被其他应用访问。...这意味着,恶意应用无法通过尝试直接登录,或创建帐户来攻击帐户。 5.3.2.3 登录界面活动必须是公共活动,并假设其他应用的攻击访问(必需) 登录界面活动是由用户应用加载的系统。...5.3.2.4 使用显示意图提供KEY_INTENT,带有登录界面活动的指定类名称(必需) 当认证器需要打开登录界面活动时,启动登录界面活动的意图,会在返回给账户管理器的 Bundle 中,由KEY_INTENT...所提供的意图应该是指定登录界面活动的类名的显式意图。 在使用隐示意图,它指定动作名称的情况下,有可能并不启动由认证器应用本身准备的登录界面活动,而是其他应用准备的活动。...在 Android 操作系统中存在漏洞的情况下,攻击者可以获得 root 权限或系统权限,保存在accounts.db中的认证信息将处在风险边缘。
隐式意图和显式意图: 显式意图:显式意图明确指明了启动活动的上下文和想要启动的目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。...resultCode的值来判断数据来源,确定这个是由哪一个活动返回的数据。...> 扩展阅读(官方文档): URI是统一资源标识符,而URL是统一资源定位符。...此类的实例表示RFC 2396定义的语法意义上的URI引用.URI可以是绝对的或相对的。根据通用语法解析URI字符串,而不考虑它指定的方案(如果有的话)。...平等和散列取决于主机的方案和互联网地址,如果有的话;比较没有定义。换句话说,URL是一种结构化字符串,它支持解析的语法操作以及查找主机和打开与指定资源的连接的网络I / O操作。
在Android上,这个功能目前被忽略,尽管它仍然是必需的。 app 一个或一个文件的绝对本地路径或远程http URL ,或者包含其中的一个。...能力 描述 值 appActivity 要从包中启动的Android活动的活动名称。这往往需要在一个....默认为2000 例如 4 intentAction 意图操作将用于启动活动(默认android.intent.action.MAIN) 例如android.intent.action.MAIN,android.intent.action.VIEW...intentCategory 意图类别,将用于启动活动(默认android.intent.category.LAUNCHER) 例如android.intent.category.LAUNCHER,android.intent.category.APP_CONTACTS...intentFlags 将用于启动活动的标志(默认0x10200000) 例如 0x10200000 optionalIntentArguments 将用于启动活动的其他意图参数。
活动。 活动是用户界面的元素之一。 一般来说,一个活动通常代表一个界面。 服务。 服务是 Android 中的后台工作装置。 服务可以无限期运行。...最知名的服务示例是在后台播放音乐的媒体播放器,即使用户离开已启动此服务的活动。 广播接收器。 广播接收器是应用的组件,它接收广播消息并根据所获得的消息启动工作流。 内容供应器。...所有其他组件类型通过Intent(意图)激活。 意图是 Android 中基于Binder框架的特殊通信手段。意图被传递给执行组件调用的方法。被调用的组件可以被两种不同类型的意图调用。...应用的开发人员可以使用显式意图或隐式意图来调用选择图片的组件。对于第一种意图类型,开发人员可以在他的应用的组件中实现挑选功能,并使用带有组件名称数据字段的显式意图调用此组件。...一般来说,从开发人员的角度来看,一个应用中的组件或不同应用的组件之间的交互不存在差异。对于第二种意图类型,开发人员将选择适当组件的权利转移给操作系统。
采用Android束的设备之间传输数据,您需要创建一个包含您要共享的信息,而您的活动是NdefMessage前台的NdefMessage。...该系统调用的意图ACTION_NDEF_DISCOVERED行动启动URL或一个MIME类型设置根据第一的活动,你想回应的活动,你可以声明意图过滤器的网址或你的应用程序关心的MIME类型。...如果URI是一个特殊的格式,您希望您的应用程序也收到一个Android束事件期间,您应该为您的活动创造的意图过滤器使用相同的URI方案,以接收传入的NDEF消息。...当你想创造一个行动项目时,动态的行为(比如一个变量作用的观点,默认的行动,或者子菜单),延长ActionProvider是个好办法,以创造一个可用的组件,而不是处理各项行动项目或活动转换你的碎片。...这个主题是保证不改变到另一个设备运行相同的版本的android。如果你明确适用于任何的主题。你的主题活动,是可以放心,这些主题将不会改变角色在不同的设备在同一平台版本。
,这个name的值就会成为这个activity动作, 在隐式启动Activity时,意图中设置的action必须跟"com.itheima.sa"是完全匹配的) data...", "com.android.dialer.DialtactsActivity"); startActivity(intent); 应用场景 显示意图:启动同一个应用中的Activity 隐式意图:...不过一般在标签中都不会指定过多的内容,如上边浏览器示例中,其实只需要指定 android:scheme为 http,就可以响应所有的 http协议的 Intent了。...时添加以下属性,横竖屏切换时就不会销毁重建 android:configChanges="orientation|keyboardHidden|screenSize" 活动小技巧 1.知晓当前是在哪一个活动...其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了 //新建一个 ActivityCollector类作为活动管理器public class ActivityCollector
在发起意图的同一任务中打开 是 singleTop 否 与标准完全相同,但如果活动位于Task堆栈的顶部,则使用现有实例。 否。在发起意图的同一任务中打开 是 singleTask 否 单实例 是。...要实现向上导航,第一步是声明哪个活动是每个活动的适当父级。这样做允许系统便于导航模式,例如Up,因为系统可以从清单文件中确定逻辑父活动。...当您调用此方法时,它将完成当前活动并启动(或恢复)相应的父活动。如果目标父活动位于任务的后台堆栈中,则会将其提前。...它的提出方式取决于父活动是否能够处理onNewIntent()调用: 如果父活动的启动模式,或者向上的意图包含FLAG_ACTIVITY_CLEAR_TOP,则父活动将被带到堆栈顶部...如果父活动具有启动模式,并且向上意图不包含FLAG_ACTIVITY_CLEAR_TOP,则从堆栈弹出父活动,并在堆栈顶部创建该活动的新实例以接收意图。
* * 此方法引发{@link android.content.ActivityNotFoundException} * 如果没有找到运行给定意图的活动。...* * @param intent 要启动的意图. * @param options 有关如何启动活动的其他选项....* * 此方法引发{@link android.content.ActivityNotFoundException} * 如果没有找到运行给定意图的活动。...背景 // 此代码在onCreate(Bundle savedInstanceState)或onResume()期间将保持 // 在此期间隐藏活动...} * 如果没有找到运行给定意图的活动。
4.4.2.2 小心并安全地处理收到的数据(必需) 与“活动”相同,如果是“服务”,则在处理收到的意图数据时,你应该做的第一件事是输入验证。 同样在服务的用户方,有必要验证来自服务的结果信息的安全性。...请参阅“4.1.2.5 小心并安全地处理收到的意图(必需)”和“4.1.2.9 小心并安全地处理从被请求活动返回的数据”。 在服务中,你还应该小心实现调用方法,并通过消息交换数据。...4.4.2.6 如果目标是固定的,使用显式意图(必需) 当通过隐式意图使用服务时,如果意图过滤器的定义相同,则意图会发送到首先之前的服务。...还有一些要考虑的要点,请参阅“4.1.2.8 如果目标活动是预定义的,则使用显式意图(必需)”。...你必须假设,发送到公共服务的意图中的所有数据都可以由恶意第三方获取。 此外,根据实现情况,向伙伴或内部服务发送意图时,也存在各种信息泄露的风险。
定义 即 广播,是一个全局的监听器,属于Android四大组件之一 Android 广播分为两个角色:广播发送者、广播接收者 2....5.2.3 两种注册方式的区别 5.3 广播发送者向AMS发送广播 5.3.1 广播的发送 广播 是 用”意图(Intent)“标识 定义广播的本质 = 定义广播所具备的“意图(Intent)” 广播发送...(包括具体的action),Android系统广播action如下: 系统操作 action 监听网络变化 android.net.conn.CONNECTIVITY_CHANGE 关闭或打开飞行模式...(context, intent)中的context返回值是:ReceiverRestrictedContext; 对于全局广播的动态注册,回调onReceive(context, intent)中的context...总结 本文主要介绍了Android中四大组件的BroadcastReceiver的所有知识 Carson带你学Android 文章系列: Carson带你学Android:页面活动-Activity
一个是 //第一个参数是intent买第二个是请求吗,用来判断数据的来源 这个方法就是在活动销毁时返回一个结果给上一个活动,需要 接受两个参数。...","第一个活动"); setResult(RESULT_OK,intent); finish(); 构建的这个意图就是去传递数据而已。...二是我们在返回数据时传入的处理结果 三是data,携带有返回数据的Intent由于活动里面可能会调用这个函数去启动不同的活动,每一个活动返回的数据都会回调到 ? 这个方法里面来检查值 ?...它最重要的用途是在启动活动时,可以将其视为活动之间的粘合剂。它基本上是一种被动数据结构,其中包含要执行的动作的抽象描述。...看api级别也就是这个函数是设计之初就有的 ? 函数原型 ? 实际写的代码 ?
领取专属 10元无门槛券
手把手带您无忧上云