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     @Override
10     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     @Override
10     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:在配置改变时,进行处理

原文地址:https://www.cnblogs.com/Claire6649/p/5938069.html