1.启动和关闭
Activity可以直接理解为APP的一个页面,Activity的启动和关闭就是页面之间的跳转。
启动:
startActivity(new Intent(this, MainActivity2.class)) 参数为当前Activity的指针,和即将跳转的Activity的class
关闭:
finish();
第一个页面代码:启动Activity
package com.example.ch2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.bt1).setOnClickListener(this);
}
@Override
public void onClick(View view) {
startActivity(new Intent(this, MainActivity2.class));
}
}
第二个页面代码:关闭Activity
package com.example.ch2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
findViewById(R.id.ib1).setOnClickListener(this);
findViewById(R.id.bt2).setOnClickListener(this);
}
@Override
public void onClick(View view) {
finish();
}
}
2.生命周期
简单来说就是:
可以写代码来看一下各个方法的调用顺序:
package com.example.ch2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
public static final String TAG = "CYCLE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate()");
setContentView(R.layout.activity_main);
findViewById(R.id.bt1).setOnClickListener(this);
}
@Override
public void onClick(View view) {
startActivity(new Intent(this, MainActivity2.class));
}
@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()");
}
}
页面启动:
点击跳转下一页面按钮:
返回主界面:
关闭APP:
生命周期中每个方法具体含义:
其中onNewIntent详细见下图:
3.启动模式
Activity启动后会进入活动栈,启动模式决定了活动栈会如何更新。
在XML文件AndroidManifest.xml中设置Activity的启动模式
四种类型含义如下:
在java文件中设置启动模式:
五种类型含义如下: