diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f318e6c..f416426 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,29 @@ 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..ec98210 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt @@ -0,0 +1,64 @@ +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 + +val TAG: String = "TAG" + +class ActivityA : AppCompatActivity() { + + private var buttonToB: Button? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_a) + + buttonToB = findViewById(R.id.button_a) + buttonToB?.setOnClickListener { + intent = Intent(this, ActivityB::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK) + } + startActivity(intent) + } + Log.i(TAG, "${javaClass.simpleName}: onCreate") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(TAG, "${javaClass.simpleName}: onNewIntent") + } + + override fun onRestart() { + super.onRestart() + Log.i(TAG, "${javaClass.simpleName}: onRestart") + } + + override fun onStart() { + super.onStart() + Log.i(TAG, "${javaClass.simpleName}: onStart") + } + + override fun onResume() { + super.onResume() + Log.i(TAG, "${javaClass.simpleName}: onResume") + } + + override fun onPause() { + super.onPause() + Log.i(TAG, "${javaClass.simpleName}: onPause") + } + + override fun onStop() { + super.onStop() + Log.i(TAG, "${javaClass.simpleName}: onStop") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(TAG, "${javaClass.simpleName}: onDestroy") + } +} \ 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..880eb33 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityB.kt @@ -0,0 +1,58 @@ +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 buttonToC: Button? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_b) + + buttonToC = findViewById(R.id.button_b) + buttonToC?.setOnClickListener { + startActivity(Intent(this, ActivityC::class.java)) + } + Log.i(TAG, "${javaClass.simpleName}: onCreate") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(TAG, "${javaClass.simpleName}: onNewIntent") + } + + override fun onRestart() { + super.onRestart() + Log.i(TAG, "${javaClass.simpleName}: onRestart") + } + + override fun onStart() { + super.onStart() + Log.i(TAG, "${javaClass.simpleName}: onStart") + } + + override fun onResume() { + super.onResume() + Log.i(TAG, "${javaClass.simpleName}: onResume") + } + + override fun onPause() { + super.onPause() + Log.i(TAG, "${javaClass.simpleName}: onPause") + } + + override fun onStop() { + super.onStop() + Log.i(TAG, "${javaClass.simpleName}: onStop") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(TAG, "${javaClass.simpleName}: onDestroy") + } +} \ 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..9279fd0 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityC.kt @@ -0,0 +1,81 @@ +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) + setContentView(R.layout.activity_c) + + buttonOpenA = findViewById(R.id.button_open_a) + buttonOpenA?.setOnClickListener { + startActivity(Intent(this, ActivityA::class.java)) + } + + buttonOpenD = findViewById(R.id.button_open_d) + buttonOpenD?.setOnClickListener { + intent = Intent(this, ActivityD::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) + } + startActivity(intent) + } + + buttonCloseC = findViewById(R.id.button_close_c) + buttonCloseC?.setOnClickListener { + finish() + } + + buttonCloseStack = findViewById(R.id.button_close_stack) + buttonCloseStack?.setOnClickListener { + finishAffinity() + } + + Log.i(TAG, "${javaClass.simpleName}: onCreate") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(TAG, "${javaClass.simpleName}: onNewIntent") + } + + override fun onRestart() { + super.onRestart() + Log.i(TAG, "${javaClass.simpleName}: onRestart") + } + + override fun onStart() { + super.onStart() + Log.i(TAG, "${javaClass.simpleName}: onStart") + } + + override fun onResume() { + super.onResume() + Log.i(TAG, "${javaClass.simpleName}: onResume") + } + + override fun onPause() { + super.onPause() + Log.i(TAG, "${javaClass.simpleName}: onPause") + } + + override fun onStop() { + super.onStop() + Log.i(TAG, "${javaClass.simpleName}: onStop") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(TAG, "${javaClass.simpleName}: onDestroy") + } +} \ 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..fa6633a --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityD.kt @@ -0,0 +1,53 @@ +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 ActivityD : AppCompatActivity() { + + private var buttonToC: Button? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_d) + Log.i(TAG, "${javaClass.simpleName}: onCreate") + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + Log.i(TAG, "${javaClass.simpleName}: onNewIntent") + } + + override fun onRestart() { + super.onRestart() + Log.i(TAG, "${javaClass.simpleName}: onRestart") + } + + override fun onStart() { + super.onStart() + Log.i(TAG, "${javaClass.simpleName}: onStart") + } + + override fun onResume() { + super.onResume() + Log.i(TAG, "${javaClass.simpleName}: onResume") + } + + override fun onPause() { + super.onPause() + Log.i(TAG, "${javaClass.simpleName}: onPause") + } + + override fun onStop() { + super.onStop() + Log.i(TAG, "${javaClass.simpleName}: onStop") + } + + override fun onDestroy() { + super.onDestroy() + Log.i(TAG, "${javaClass.simpleName}: onDestroy") + } +} \ 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..08e8de8 --- /dev/null +++ b/app/src/main/res/layout/activity_a.xml @@ -0,0 +1,23 @@ + + + +