安卓API学习【持续更新中...】

一、Activity类的方法学习

1、Activity继承和实现了哪些类?

public class Activity
extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Callback, KeyEvent.Callback, View.OnCreateContextMenuListener, ComponentCallbacks2

2、这些的作用是什么?

(1)继承自 ContextThemeWrapper,而他的作用是“允许您修改或替换已包装上下文的主题的上下文包装器。”----该类又继承于<a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPMWr8XoHxkPFmhVVjMcInCuZZjK_7nhRZAZHSnFV4B6o/" rel="nofollow" title="ContextWrapper">ContextWrapper</a>---又继承于抽象类<a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPMWr8XoHxkPFmhVVjMcInCpGT507zV9jLw4jSS-zZLi8/" rel="nofollow" title="Context">Context</a>【接口到有关应用程序环境的全局信息。这是一个抽象类,它的实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及对应用程序级操作(如启动活动、广播和接收意图等)的向上调用。】--又继承自Object<br />

即Object--->Context(抽象)--->ContextWrapper--->ContextThemeWrapper--->Activity(从而该类便有了前面类的特性)

(2)、实现了LayoutInflater.Factory2,他的作用则是创建视图,已知的子类有<a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPFvFi4TWmeVfp8gm5D0JPdxcyY1zK_b24-30aAWicW2xpDv1ovfau6_tlxgm7X8wg/" rel="nofollow" title="AccountAuthenticatorActivity">AccountAuthenticatorActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPj1xtNIocZItZLmd0DVDHSIgsmSR21gIUtws8i--Gj_E/" rel="nofollow" title="Activity">Activity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPj1xtNIocZItZLmd0DVDHSGXOwYiY7zLzwGS_vIq1ICE/" rel="nofollow" title="ActivityGroup">ActivityGroup</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPI8j_2hlyJ5DVKRa3RVGy4KP9t0iMHw4JfMmHx4FudUs/" rel="nofollow" title="AliasActivity">AliasActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPFPlriF6Ljm99EqE8cMrwaFdFmlkEUddVNocCHGsTulCVoFEAVvHHlwHc47VEUJcG/" rel="nofollow" title="ExpandableListActivity">ExpandableListActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAP35AccqpTFzbX4Msx02iCK_zeh9UWKau-sPKmgVqMSjc/" rel="nofollow" title="LauncherActivity">LauncherActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPqRy23HBizYyGadAQCZIEY4pwrbJjOqttDfU6ILpPxfQ/" rel="nofollow" title="ListActivity">ListActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPIi4eLjHDt2UmeB_WAQ-dukty0rLnkKImvOa96dCOJ9g/" rel="nofollow" title="NativeActivity">NativeActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAP5l2O62tg1sCD17E8ZbiBN7JlmXW_dt9k7WFCM35sYdyncJGC0lQ0u2FdyZJlSv20/" rel="nofollow" title="PreferenceActivity">PreferenceActivity</a>, <a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPG3Aoc8rSgM25spDJBEAkSwiE2wv4LocdP_VqOvjt_ZE/" rel="nofollow" title="TabActivity">TabActivity</a>

而 LayoutInflater.Factory2自己本身是接口,他实现了<a target="_blank" href="https://www.ancii.com/link/v1/7DZIIP7vza1Pnnr0kWwZDrDtX32yHRK8S6179W7MIveMT6v5wkaxOpMuBpjinCAPscRDapB2f58c9QjLlpQkwBZmvYzDhM8oco1n2jFsZqPExjaE0PvDL_fBqRdvTlTq/" rel="nofollow" title="LayoutInflater.Factory">LayoutInflater.Factory</a>类。

(3)实现了Window.Callback,他的作用是“从窗口返回到调用者的API。这允许客户端拦截密钥调度、面板和菜单等。”

(4)实现了KeyEvent.Callback,他的作用是事件调用

(5)实现了View.OnCreateContextMenuListener,他的作用是“接口定义,用于在构建此视图的上下文菜单时调用回调。”

(6)实现了 ComponentCallbacks2,他“扩展的ComponentCallbacks接口,带有用于更细粒度内存管理的新回调。此接口可用于所有应用程序组件(活动、服务、ContentProvider和应用程序)。”

您应该实现onTrimMemory(int),以根据当前系统约束增量地释放内存。使用这个回调来释放您的资源有助于提供一个响应更快的系统,但也可以通过允许系统让您的进程保持更长时间的活动,从而直接为您的应用程序带来用户体验。也就是说,如果你不削减你的资源基于内存水平定义为这个回调,该系统更有可能杀死你的过程虽然是最近最少使用(LRU)缓存列表,因此需要应用程序重启和恢复所有状态当用户返回它。

总结:通过以上了解,需要 明确的知道,在Activity中,以上被实现的父类或接口的方法都能使用,使用时需要根据各自特点进行优化编程。