From c86e865c6f2ba3206716490c0752433f00f1cc9c Mon Sep 17 00:00:00 2001 From: Andrey Samoykin Date: Tue, 26 May 2026 13:46:38 +0900 Subject: [PATCH] upd --- app/src/main/AndroidManifest.xml | 28 ++++++++- .../otus/gpb/homework/activities/ActivityA.kt | 33 ++++++++++ .../otus/gpb/homework/activities/ActivityB.kt | 25 ++++++++ .../otus/gpb/homework/activities/ActivityC.kt | 61 +++++++++++++++++++ .../otus/gpb/homework/activities/ActivityD.kt | 16 +++++ app/src/main/res/layout/activity_a.xml | 14 +++++ app/src/main/res/layout/activity_b.xml | 14 +++++ app/src/main/res/layout/activity_c.xml | 34 +++++++++++ app/src/main/res/layout/activity_d.xml | 5 ++ 9 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityA.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityB.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityC.kt create mode 100644 app/src/main/java/otus/gpb/homework/activities/ActivityD.kt create mode 100644 app/src/main/res/layout/activity_a.xml create mode 100644 app/src/main/res/layout/activity_b.xml create mode 100644 app/src/main/res/layout/activity_c.xml create mode 100644 app/src/main/res/layout/activity_d.xml 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 @@ + + + +