Android
Android Studio - 새로운 Activity 추가하기 / 액티비티간에 연결하기
Cong_S
2022. 7. 13. 10:25
새로운 액티비티를 만들어보자.
위 캡쳐대로 만들수 있다.
Main의 onCreate 안에 아래와 같이
Intenr와 startActivity 코드를 작성해 액티비티를 연결할 수 있다.
Intent intent = new Intent(MainActivity.this,ThirdActivity.class);
startActivity(intent);
아래는 액티비티 파일을 3개까지 연결한 모습이다.
1. MainActivity
package com.congs.multiple;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 버튼을 누르면 다른 액티비티가 실행됨.
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
Log.i("MyMultiple", "Main : onCreate");
}
@Override
protected void onResume() {
super.onResume();
Log.i("MyMultiple", "Main : onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.i("MyMultiple", "Main : onPause");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("MyMultiple", "Main : onDestroy");
}
}
2. SecondActivity
package com.congs.multiple;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Button button = findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 버튼을 누르면 다른 액티비티가 실행됨.
Intent intent = new Intent(SecondActivity.this,ThirdActivity.class);
startActivity(intent);
}
});
Log.i("MyMultiple", "Second : onCreate");
}
@Override
protected void onResume() {
super.onResume();
Log.i("MyMultiple", "Second : onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.i("MyMultiple", "Second : onPause");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("MyMultiple", "Second : onDestroy");
}
}
3. ThirdActivity
package com.congs.multiple;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class ThirdActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
}
}
알고 넘어가야하는 점은
새로운 Activity가 실행될 때 기존의 Activity는 종료되는 것이 아니고 onPause로 잠시 멈추다는 것이다.
그리고 새로 실행된 Activity에서 기계의 백버튼 등을 누르면 onDestroy로 종료되며, 멈추어있던 원래 Activity로 돌아간다.
아래는 위에 코드에서 작성된 것처럼 로그를 남긴 것이다.
처음 메인 액티비티를 실행할 때 : onCreate / onResume
세컨드 액티비리로 넘어갈때 메인 액티비티는 onPause
세컨드 액티비티는 onCreate / onResume
작업이 끝났거나 백버튼을 통해
세컨드 액티비티가 종료되면 먼저 세컨드 액티비티는 onPause
메인 액티비티는 onResume
그 후, 세컨드 액티비티는 onDestroy