您的位置:首页 > 移动开发 > Android开发

android 17 activity生命周期

2015-10-16 21:28 555 查看


手机指南针传感器处于手机头部。
Activity生命周期:
启动。
onCreat()方法:初始化布局对象,设置监听器。
onstart()方法:注册监听器。
onResume():activity已经是屏幕最前端了,
running,已经是最前端了,可以触摸了,可以响应。
onPause():其他activity把之前的ancity完全遮住了,则调用onPause()方法暂停本acticity,然后调用onStop方法停止这个activity。如果只是部分遮住,则调用onPause()方法暂停本acticity,不调用onStop方法。停止住的acticity的数据和成员变量都是保存的,当挡住的acticity不遮住的时候会重新加载,里面的数据可以重新使用。处于暂停和停止的acticity的数据和成员变量都是保存的可以重新使用。处于暂停和停止的acticity有2种走向,当系统内存不足是会把停止的acticity杀掉,出了暂停的acticity优先级高于停止的acticity,当内存极度缺乏的时候也会杀掉处于暂停的acticity。但系统内存足够的时候,当挡住的activity不再挡住时,处于暂停的acticity调用onResume()方法启动,处于停止的activity调用onRestart()方法启动。
关掉activity时会依次调用onPause()onStop()ondestiry()方法,ondestiry()可以保存数据释放流资源和监听器和网络资源。流资源和数据库占用的是系统内存之外的资源,gc只能回收内存的对象,因此要释放外部资源。


如果系统资源匮乏,处于停止的activity被系统杀掉了则不会执行onDestory(),所以在onStop()方法里面就要释放资源。


第一个activity:

package com.sxt.day04_03;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("main","onCreate()");
setListener();
}

private void setListener() {
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
}

@Override
protected void onStart() {
super.onStart();
Log.i("main","onStart()");
}

@Override
protected void onResume() {
super.onResume();
Log.i("main","onResume()");
}

@Override
protected void onPause() {
super.onPause();
Log.i("main", "onPause()");
}

@Override
protected void onStop() {
super.onStop();
Log.i("main","onStop()");
}

@Override
protected void onDestroy() {
super.onDestroy();
Log.i("main","onDestroy()");
}

@Override
protected void onRestart() {
super.onRestart();
Log.i("main","onRestatr()");
}
}


第二个activity:

package com.sxt.day04_03;

import android.app.Activity;
import android.os.Bundle;

public class SecondActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: