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

  • 相关阅读:
    mysql
    makefile
    KNN算法(k-nearest neighbor)
    时间序列
    python易错题之lambda 以及 for循环中内嵌函数
    python易错题之作用域
    html----不常见标签
    js----DOM对象(3
    js----DOM对象(事件)
    js----对象
  • 原文地址:https://www.cnblogs.com/Claire6649/p/5938069.html
Copyright © 2020-2023  润新知