Api--applicaiton source analysis in Layman's

Source: Internet
Author: User

/* Copyright (C) 2006 the Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License") ; * You are not a use this file except in compliance with the License. * Obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * unless required by appli Cable law or agreed into writing, software * Distributed under the License is distributed on a "as is" BASIS, * without Warranties or CONDITIONS of any KIND, either express OR implied. * See the License for the specific language governing permissions and * limitations under the License. */package Android.app;import Java.util.arraylist;import Android.content.componentcallbacks;import Android.content.componentcallbacks2;import Android.content.context;import Android.content.contextwrapper;import Android.content.res.configuration;import android.os.bundle;/** * Base class for those who need to maintain global applicat Ion state. You can * provide your own implementation by SpecifyinG its name in your * androidmanifest.xml ' s <application> tag, which would cause that class * to being instantiated for Y OU when the process for your application/package is * created.  * * <p class= "Note" >there is normally no need to subclass application.  In * Most situation, static singletons can provide the same functionality in a * more modular the. If your singleton needs a global context (for example * to register broadcast receivers), the function to retrieve it can Be * Given a {@link Android.content.Context} which internally uses * {@link android.content.context#getapplicationcontext  () Context.getapplicationcontext ()} * When first constructing the Singleton.</p> */public class application extends            Contextwrapper implements COMPONENTCALLBACKS2 {private arraylist<componentcallbacks> mcomponentcallbacks =    New Arraylist<componentcallbacks> (); Private arraylist<activitylifecyclecallbacks> mactivitylifecyclecallbacks = newArraylist<activitylifecyclecallbacks> ();    /** @hide * * Public loadedapk mloadedapk;         public interface Activitylifecyclecallbacks {void onactivitycreated (activity activity, Bundle savedinstancestate);        void onactivitystarted (activity activity);        void onactivityresumed (activity activity);        void onactivitypaused (activity activity);        void onactivitystopped (activity activity);        void Onactivitysaveinstancestate (activity activity, Bundle outstate);    void onactivitydestroyed (activity activity);    } public Application () {super (NULL);  }/** * Called when the application are starting, before any other application * objects has been created.  Implementations should is as quick as * possible (for example using lazy initialization of state) since the time * Spent in this function directly impacts the performance of starting the * first activity, service, or receiver in a P     Rocess. * If you override this method, being sure to call Super.oncreate ().  */public void OnCreate () {}/** * This method was for use in emulated process environments. It'll * never is called on a production Android device, where processes is * removed by simply killing them;     No user code (including this callback) * was executed when doing so. */public void Onterminate () {} public void onconfigurationchanged (Configuration newconfig) {object[] ca        Llbacks = Collectcomponentcallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(componentcallbacks) Callba            Cks[i]). onconfigurationchanged (Newconfig);        }}} public void Onlowmemory () {object[] callbacks = Collectcomponentcallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(componentcallbacks) Callba            Cks[i]). Onlowmemory (); }}} public void OntrimmeMory (int level) {object[] callbacks = Collectcomponentcallbacks ();                if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {Object c = callbacks[i];                if (c instanceof ComponentCallbacks2) {((COMPONENTCALLBACKS2) c). Ontrimmemory (level);        }}}} public void Registercomponentcallbacks (Componentcallbacks callback) {        Synchronized (mcomponentcallbacks) {Mcomponentcallbacks.add (callback); }} public void Unregistercomponentcallbacks (Componentcallbacks callback) {synchronized (mcomponentcallbacks        ) {Mcomponentcallbacks.remove (callback); }} public void Registeractivitylifecyclecallbacks (Activitylifecyclecallbacks callback) {synchronized (macti        Vitylifecyclecallbacks) {Mactivitylifecyclecallbacks.add (callback); }} public void Unregisteractivitylifecyclecallbacks (activitylifecyClecallbacks callback) {synchronized (mactivitylifecyclecallbacks) {Mactivitylifecyclecallbacks.remove        (callback); }}//------------------Internal API------------------/** * @hide */* Package */FINAL V        OID Attach (Context context) {Attachbasecontext (context);    mloadedapk = Contextimpl.getimpl (context). Mpackageinfo; }/* Package */void dispatchactivitycreated (activity activity, Bundle savedinstancestate) {object[] Callbacks        = Collectactivitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(activitylifecyclecallback            s) (Callbacks[i]). onactivitycreated (activity, savedinstancestate); }}}/* package */void dispatchactivitystarted (activity activity) {object[] callbacks = Collectacti        Vitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; I&LT;CALLBACKs.length;            i++) {((activitylifecyclecallbacks) callbacks[i]). onactivitystarted (activity); }}}/* package */void dispatchactivityresumed (activity activity) {object[] callbacks = Collectacti        Vitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(activitylifecyclecallback            s) (Callbacks[i]). onactivityresumed (activity); }}}/* package */void dispatchactivitypaused (activity activity) {object[] callbacks = Collectactiv        Itylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(activitylifecyclecallback            s) (Callbacks[i]). onactivitypaused (activity); }}}/* package */void dispatchactivitystopped (activity activity) {object[] callbacks = Collectacti        Vitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.Length            i++) {((activitylifecyclecallbacks) callbacks[i]). onactivitystopped (activity); }}}/* package */void dispatchactivitysaveinstancestate (activity activity, Bundle outstate) {objec        T[] callbacks = Collectactivitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(activitylifecyclecallback            s) (Callbacks[i]). Onactivitysaveinstancestate (activity, outstate); }}}/* package */void dispatchactivitydestroyed (activity activity) {object[] callbacks = Collectac        Tivitylifecyclecallbacks (); if (callbacks! = null) {for (int i=0; i<callbacks.length; i++) {(activitylifecyclecallback            s) (Callbacks[i]). onactivitydestroyed (activity);        }}} private object[] Collectcomponentcallbacks () {object[] callbacks = null;    Synchronized (mcomponentcallbacks) {        if (mcomponentcallbacks.size () > 0) {callbacks = Mcomponentcallbacks.toarray ();    }} return callbacks;        } private object[] Collectactivitylifecyclecallbacks () {object[] callbacks = null; Synchronized (mactivitylifecyclecallbacks) {if (mactivitylifecyclecallbacks.size () > 0) {CA            Llbacks = Mactivitylifecyclecallbacks.toarray ();    }} return callbacks; }}

Api--applicaiton source analysis in Layman's

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.