关闭

【Android 】Application的使用及其生命周期

158人阅读 评论(0) 收藏 举报
分类:

                           Android Application的使用及其生命周期

摘要:

1. Application的使用

2. Application的生命周期


一. Application的使用

1.多个组件之间数据共享(全局数据共享);

2.启动APP后进行崩溃捕获和闪退处理;

3.启动APP后自动创建Service;

4.管理Activity堆栈,方便应用程序完全退出;


①.两个Activity之间数据共享

Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享

定义两个Activity:  MainActivity.java 和 MainActivity2.java, 代码是一样的

复制代码
TextView tv;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main_activity2);
    setContentView(R.layout.activity_main2);

    tv = (TextView) findViewById(R.id.tv);
    et = (EditText) findViewById(R.id.et);
    
    tv.setText("共享数据:" + getApp().getTextData());
    
    findViewById(R.id.btnTextData).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            getApp().setTextData(et.getText().toString());
            tv.setText("共享数据:" + et.getText().toString());
        }
    });
}

public App getApp() {
    return ((App)getApplicationContext());
}

定义一个类App,集成Application

复制代码
public class App extends Application {
    
    private String textData = "default";
    
    public void setTextData(String textData) {
        this.textData = textData;
    }
    public String getTextData() {
        return textData;
    }
}
复制代码

 

. Application的生命周期

复制代码
public class App extends Application {

    @Override
    public void onCreate() {
        // 程序创建的时候执行
        Log.d(TAG, "onCreate");
        super.onCreate();
    }
    @Override
    public void onTerminate() {
        // 程序终止的时候执行
        Log.d(TAG, "onTerminate");
        super.onTerminate();
    }
    @Override
    public void onLowMemory() {
        // 低内存的时候执行
        Log.d(TAG, "onLowMemory");
        super.onLowMemory();
    }
    @Override
    public void onTrimMemory(int level) {
        // 程序在内存清理的时候执行
        Log.d(TAG, "onTrimMemory");
        super.onTrimMemory(level);
    }
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        Log.d(TAG, "onConfigurationChanged");
        super.onConfigurationChanged(newConfig);
    }
    
}
复制代码

 

复制代码
打开Activity
08-16 15:16:27.142: D/CARLOZ - Application(28202): onCreate
08-16 15:16:27.172: D/CARLOZ - MainActivity3(28202): onCreate
08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onStart
08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onResume
HOME键退出应用程序
08-16 15:16:55.372: D/CARLOZ - MainActivity3(28202): onPause
08-16 15:16:55.942: D/CARLOZ - MainActivity3(28202): onStop
08-16 15:16:55.952: D/CARLOZ - Application(28202): onTrimMemory    回收内存
重新打开应用程序
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onRestart
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onStart
08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onResume
长按MENU键,打开Recent TASK
08-16 15:17:28.972: D/CARLOZ - MainActivity3(28202): onPause
08-16 15:17:28.992: D/CARLOZ - MainActivity3(28202): onStop
08-16 15:17:29.022: D/CARLOZ - Application(28202): onTrimMemory
彻底关闭应用程序
08-16 15:17:31.542: D/CARLOZ - MainActivity3(28202): onDestroy
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1965次
    • 积分:49
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:12篇
    • 译文:0篇
    • 评论:0条
    文章分类