diff --git a/app/build.gradle b/app/build.gradle
index 3c3711b..0c342bd 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,4 +52,5 @@ dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.5.0'
implementation 'com.google.android.material:material:1.6.1'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f318e6c..f0ed115 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,28 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Activities"
- tools:targetApi="31" />
+ tools:targetApi="31">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
new file mode 100644
index 0000000..3157920
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
@@ -0,0 +1,49 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.util.Log
+import android.widget.Button
+
+const val tag = "TAG"
+
+class ActivityA : AppCompatActivity() {
+ private var button: Button? = null
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ Log.i(tag, "onCreate A ${hashCode()}")
+ setContentView(R.layout.activity_a)
+ button = findViewById(R.id.open_b)
+ button?.setOnClickListener {
+ startActivity(Intent(this, ActivityB::class.java).apply {
+ flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
+ })
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+ Log.i(tag, "onStart A ${hashCode()}")
+ }
+
+ override fun onStop() {
+ super.onStop()
+ Log.i(tag, "onStop A ${hashCode()}")
+ }
+
+ override fun onResume() {
+ super.onResume()
+ Log.i(tag, "onResume A ${hashCode()}")
+ }
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ Log.i(tag, "onNewIntent A ${hashCode()}")
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ Log.i(tag, "onDestroy A ${hashCode()}")
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
new file mode 100644
index 0000000..abb0678
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
@@ -0,0 +1,45 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.widget.Button
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityB : AppCompatActivity() {
+ private var button: Button? = null
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ Log.i(tag, "onCreate B")
+ setContentView(R.layout.activity_b)
+ button = findViewById(R.id.open_c)
+ button?.setOnClickListener {
+ startActivity(Intent(this, ActivityC::class.java))
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+ Log.i(tag, "onStart B")
+ }
+
+ override fun onStop() {
+ super.onStop()
+ Log.i(tag, "onStop B")
+ }
+
+ override fun onResume() {
+ super.onResume()
+ Log.i(tag, "onResume B")
+ }
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ Log.i(tag, "onNewIntent B")
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ Log.i(tag, "onDestroy B")
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
new file mode 100644
index 0000000..9d4f6b1
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
@@ -0,0 +1,67 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.widget.Button
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityC : AppCompatActivity() {
+ private var buttonOpenA: Button? = null
+ private var buttonOpenD: Button? = null
+ private var buttonCloseC: Button? = null
+ private var buttonCloseStack: Button? = null
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ Log.i(tag, "onCreate C")
+ setContentView(R.layout.activity_c)
+ buttonOpenA = findViewById(R.id.open_a)
+ buttonOpenD = findViewById(R.id.open_d)
+ buttonCloseC = findViewById(R.id.close_c)
+ buttonCloseStack = findViewById(R.id.close_stack)
+
+ buttonOpenA?.setOnClickListener {
+ startActivity(Intent(this, ActivityA::class.java))
+ }
+
+ buttonOpenD?.setOnClickListener {
+ startActivity(Intent(this, ActivityD::class.java).apply {
+ flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
+ })
+ }
+
+ buttonCloseC?.setOnClickListener {
+ finish()
+ }
+
+ buttonCloseStack?.setOnClickListener {
+ finishAffinity()
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+ Log.i(tag, "onStart C")
+ }
+
+ override fun onStop() {
+ super.onStop()
+ Log.i(tag, "onStop C")
+ }
+
+ override fun onResume() {
+ super.onResume()
+ Log.i(tag, "onResume C")
+ }
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ Log.i(tag, "onNewIntent C")
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ Log.i(tag, "onDestroy C")
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
new file mode 100644
index 0000000..5f5a2d6
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
@@ -0,0 +1,39 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import androidx.appcompat.app.AppCompatActivity
+
+class ActivityD : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ Log.i(tag, "onCreate D")
+ setContentView(R.layout.activity_d)
+ }
+
+ override fun onStart() {
+ super.onStart()
+ Log.i(tag, "onStart D")
+ }
+
+ override fun onStop() {
+ super.onStop()
+ Log.i(tag, "onStop D")
+ }
+
+ override fun onResume() {
+ super.onResume()
+ Log.i(tag, "onResume D")
+ }
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ Log.i(tag, "onNewIntent D")
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ Log.i(tag, "onDestroy D")
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_a.xml b/app/src/main/res/layout/activity_a.xml
new file mode 100644
index 0000000..9bbf0e3
--- /dev/null
+++ b/app/src/main/res/layout/activity_a.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_b.xml b/app/src/main/res/layout/activity_b.xml
new file mode 100644
index 0000000..6cea75f
--- /dev/null
+++ b/app/src/main/res/layout/activity_b.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_c.xml b/app/src/main/res/layout/activity_c.xml
new file mode 100644
index 0000000..0289f93
--- /dev/null
+++ b/app/src/main/res/layout/activity_c.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_d.xml b/app/src/main/res/layout/activity_d.xml
new file mode 100644
index 0000000..a41565b
--- /dev/null
+++ b/app/src/main/res/layout/activity_d.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..daa8e6c
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,4 @@
+
+
+ 16dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 08ea3c6..76151fe 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,10 @@
Activities
+ Open ActivityB
+ Open ActivityC
+ Open ActivityA
+ Open ActivityD
+ Close ActivityC
+ Close Stack
+ otus.gpb.homework.activities.stack2
\ No newline at end of file