diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f318e6c..d718e83 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,34 @@ 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/ActivityExt.kt b/app/src/main/java/otus/gpb/homework/ActivityExt.kt new file mode 100644 index 0000000..ade81f1 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/ActivityExt.kt @@ -0,0 +1,31 @@ +package otus.gpb.homework + +import android.app.Activity +import android.app.ActivityManager +import android.content.Context.ACTIVITY_SERVICE +import android.os.Build +import android.util.Log + +fun Activity.logWithTasks(tag: String?, text: String) { + val TAG = tag ?: localClassName + val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager + val appTasks = am.getRunningTasks(10) + val msg = buildString { + append("$text | activity task id: $taskId | app tasks: ${appTasks.size} |") + + appTasks.forEachIndexed { index, runningTaskInfo -> + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + append( + "\n app task: $index:\n" + + listOf( + " app task id: ${runningTaskInfo.taskId}", + " numActivities: ${runningTaskInfo.numActivities}", + " topActivity: ${runningTaskInfo.topActivity?.className}", + " baseActivity: ${runningTaskInfo.baseActivity?.className}" + ).joinToString(separator = ",\n") + ) + } + } + } + Log.d(TAG, msg) +} \ 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..2850067 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/activities/ActivityA.kt @@ -0,0 +1,60 @@ +package otus.gpb.homework.activities + +import android.content.Intent +import android.os.Bundle +import android.widget.Button +import androidx.appcompat.app.AppCompatActivity +import otus.gpb.homework.logWithTasks + +class ActivityA : AppCompatActivity(R.layout.activity_a) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + logWithTasks(TAG, "onCreate") + + title = localClassName + } + + override fun onStart() { + super.onStart() + logWithTasks(TAG, "onStart") + + findViewById