首页 > 代码库 > Android Application

Android Application

Android Application类简介

  每次程序运行时,应用程序Application类都保持实例化状态,通过扩展Application类可以完成:

    1、共享数据,在应用程序组件之间传递对象

    2、对系统广播做出响应(如低内存)

    3、管理和维护多个应用程序组件使用的资源

 

  每个应用程序都会生成一个唯一的Application,由系统生成。

  如果没有重写,那么程序会使用Android默认的Application类

 

扩展自己的Application

  1、继承

    public class MyApplication extends Application

  2、将MyApplication 单例化     

 1 import android.app.Application; 2 import android.util.Log; 3  4 public class MyApplication extends Application{ 5     //将一些公共数据放在这里 6     public User user = new User(); 7      8     //当应用程序被系统启动后,会调用onCreate() 9     @Override10     public void onCreate() {11         super.onCreate();12         Log.e("MyApplication", "系统调用了我们的MyApp");13     }14     //用户15     class User{16         17     }18 }

  3、配置  

 1  <application 2         android:name="com.test.lesson3_application.config.MyApplication" 3         android:allowBackup="true" 4         android:icon="@drawable/ic_launcher" 5         android:label="@string/app_name" 6         android:theme="@style/AppTheme" > 7         <activity 8             android:name=".MainActivity" 9             android:label="@string/app_name" >10             <intent-filter>11                 <action android:name="android.intent.action.MAIN" />12 13                 <category android:name="android.intent.category.LAUNCHER" />14             </intent-filter>15         </activity>16     </application>

 

 

MainActivity

 1 import com.test.lesson3_application.config.MyApplication; 2  3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6  7 public class MainActivity extends Activity { 8  9     @Override10     protected void onCreate(Bundle savedInstanceState) {11         super.onCreate(savedInstanceState);12         setContentView(R.layout.activity_main);13         14         Log.e("MainActivity", "MainActivity onCreate");15         MyApplication myapp = (MyApplication) getApplication();16         17         if(myapp.user == null){18             Log.e("MainActivity", "用户还没有登录");19         }else {20             Log.e("MainActivity", "已经有用户");21         }22         23     }24 25 }

 

技术分享

 

可见MyApplication先打印出来

 

应用程序的生命周期

  onCreate:做一些初始化操作。创建应用程序时,系统会调用onCreate

  onLowMemory:在系统处于资源匮乏状态时,具备良好行为的应用可以释放额外额内存

  onTrimMemory:API4.0后引入,系统会根据不同的内存状态类回调

  onConfigurationChanged:在配置改变时,进行处理

Android Application