Android studio APP开发 第四章 activity的生命周期

Activity生命周期

Activity 七部分

Activity的生命周期即指一个界面所经历的各个阶段。主要分为7阶段 onCreate() onStart() onResume() onPause() onStop() onDestroy() onRestart()。 见下图:
activity生命周期
打开一个activity时,首先做的就是创建一个activity界面(假设为1号),然后开始,start,打开这个界面,此时activity界面就被放到了栈的最上面。放到栈最上面了就开始运行,可以和用户进行各种交互,至少可以被用户看到
按图中所述,当Another activity comes into rhe foreground,即有其他activity界面被打开,并放在当前这个activity栈的上面时,暂停这个activity(onPause() ), 此时运行着新的activity,假设为2号。 对于1号activity,分为两种情况。如果1号activity不再可见,则停止1号activity。如果又回到了1号activity,则重新打开1号(onRestart() )。重新回到onStart()一步。 APP退出之后则销毁activity,彻底释放内存。 注意用栈的思想理解activity的生命周期

代码如下(包含一些之前的代码):


public class MainActivity extends AppCompatActivity {
    public static final String TITLE = "title";
    public static final String USER_INFO = "userInfo";
    public static final int REQUEST_CODE=9999;
    private static final String TAG= SplasgActivity.class.getSimpleName();
    private TextView mtextView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mtextView=findViewById(R.id.button_first);
        final String title=mtextView.getText().toString();

        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            Log.i(TAG,"requestCode:"+requestCode+"resultCode"+resultCode);
            if(requestCode == REQUEST_CODE && resultCode == FirstActivity.RESULT_CODE){
                if(data!=null){
                    String title=data.getStringExtra("title");
                    mtextView.setText(title);
                }
            }
        }

        findViewById(R.id.button_first).setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,FirstActivity.class);
                intent.putExtra(TITLE,title);
                startActivityForResult(intent,REQUEST_CODE);
            }
        });
        Log.i(TAG,"onCreate");
    }

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

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

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

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

    @Override
    protected void onRestart() {        //重启
        super.onRestart();
        Log.i(TAG,"onRestart");
    }

    @Override
    protected void onDestroy() {            //结束
        super.onDestroy();
        Log.i(TAG,"onDestroy");
    }
}

发布了16 篇原创文章 · 获赞 3 · 访问量 3367

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104032517