diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 811aafa1..7620c258 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,6 +11,32 @@
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 00000000..48fa4279
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt
@@ -0,0 +1,33 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import otus.gpb.homework.activities.databinding.ActivityABinding
+
+class ActivityA : AppCompatActivity() {
+
+ private lateinit var binding: ActivityABinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityABinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ binding.openActivityBButton.setOnClickListener {
+ openActivityB()
+ }
+ }
+
+ override fun onNewIntent(intent: Intent?) {
+ super.onNewIntent(intent)
+ setIntent(intent)
+ }
+
+ private fun openActivityB() {
+ val intent = Intent(this, ActivityB::class.java).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ }
+ startActivity(intent)
+ }
+}
\ 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 00000000..e7b30fea
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt
@@ -0,0 +1,25 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import otus.gpb.homework.activities.databinding.ActivityBBinding
+
+class ActivityB : AppCompatActivity() {
+
+ private lateinit var binding: ActivityBBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityBBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ binding.openActivityCButton.setOnClickListener {
+ openActivityC()
+ }
+ }
+
+ private fun openActivityC() {
+ startActivity(Intent(this, ActivityC::class.java))
+ }
+}
\ 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 00000000..283a65a4
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt
@@ -0,0 +1,61 @@
+package otus.gpb.homework.activities
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import otus.gpb.homework.activities.databinding.ActivityCBinding
+
+class ActivityC : AppCompatActivity() {
+
+ private lateinit var binding: ActivityCBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityCBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ binding.openActivityAButton.setOnClickListener {
+ openActivityA()
+ }
+ binding.openActivityDButton.setOnClickListener {
+ openActivityD()
+ }
+ binding.closeActivityCButton.setOnClickListener {
+ closeActivityC()
+ }
+ binding.closeStackButton.setOnClickListener {
+ closeStack()
+ }
+ }
+
+ private fun openActivityA() {
+ val intent = Intent(this, ActivityA::class.java).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
+ }
+ startActivity(intent)
+ }
+
+ private fun openActivityD() {
+ val intent = Intent(this, ActivityD::class.java).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
+ }
+ startActivity(intent)
+ }
+
+ private fun closeActivityC() {
+ finish()
+ }
+
+ private fun closeStack() {
+ val intent = Intent(this, ActivityA::class.java).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
+ }
+ startActivity(intent)
+ finishAffinity()
+ }
+}
\ 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 00000000..03525db0
--- /dev/null
+++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt
@@ -0,0 +1,16 @@
+package otus.gpb.homework.activities
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import otus.gpb.homework.activities.databinding.ActivityDBinding
+
+class ActivityD : AppCompatActivity() {
+
+ private lateinit var binding: ActivityDBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityDBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ }
+}
\ 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 00000000..5a6970b0
--- /dev/null
+++ b/app/src/main/res/layout/activity_a.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ 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 00000000..e73452e9
--- /dev/null
+++ b/app/src/main/res/layout/activity_b.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ 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 00000000..34c663cb
--- /dev/null
+++ b/app/src/main/res/layout/activity_c.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 00000000..b3190df7
--- /dev/null
+++ b/app/src/main/res/layout/activity_d.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file