android / android/android-test
Tasks not cleaned up after `ActivityScenario.launch`
- Vorherrschende Sprache
- Java
- Sterne
- 1.2k
- Forks
- 342
- Ø Merge
- 11 Std. 29 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
### Description
I am trying for the first time to use `ActivityScenario.launch` in instrumented tests for a physical device. No matter what I do, I cannot get the tasks to be cleaned up.
### Steps to Reproduce
1. Using Samsung Galaxy. Close all apps first.
2. Use code below
**main**
```kotlin
class MainActivity : ComponentActivity()
```
**test**
```kotlin
class LaunchAndroidInstrumentedTests {
@Test
fun activityStarts() {
val scenario = ActivityScenario.launch(MainActivity::class.java)
scenario.close()
}
}
```
### Expected Results
When the test is done, there are no running apps.
### Actual Results
When the test is done, my phone shows 2 running apps.
If I run `adb shell dumpsys activity recents`, I see this at the bottom of the output
```
Visible recent tasks (most recent first):
* RecentTaskInfo #0:
id=5745 userId=0 hasTask=false lastActiveTime=3723437970
baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=matt.launch.test/androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity }
realActivity={matt.launch.test/androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity}
isExcluded=false activityType=standard windowingMode=fullscreen supportsSplitScreenMultiWindow=true supportsMultiWindow=true
taskDescription { colorBackground=#ff303030 colorPrimary=#ff212121 iconRes=/0 iconBitmap=false resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION minWidth=-1 minHeight=-1 colorBackgroundFloating=#ff424242 }
lastSnapshotData { taskSize=Point(1080, 2316) contentInsets=Rect(0, 67 - 0, 126) bufferSize=Point(1080, 2316) }
* RecentTaskInfo #1:
id=5744 userId=0 hasTask=false lastActiveTime=3723437784
baseIntent=Intent { flg=0x10008000 cmp=matt.launch/.MainActivity }
realActivity={matt.launch/matt.launch.MainActivity}
isExcluded=false activityType=standard windowingMode=fullscreen supportsSplitScreenMultiWindow=true supportsMultiWindow=true
taskDescription { colorBackground=#fff0f0f3 colorPrimary=#ff191c1e iconRes=/0 iconBitmap=false resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION minWidth=-1 minHeight=-1 colorBackgroundFloating=#fff0f0f3 }
lastSnapshotData { taskSize=Point(1080, 2316) contentInsets=Rect(0, 67 - 0, 126) bufferSize=Point(1080, 2316) }
```
To summarize, the `EmptyActivity` and `MainActivity` were not properly cleaned up. On my phone, they actually show as two different apps in the recent app list. Both are blank white screens, but one of them says "matt.launch.MainActivity". The other one has no text.
### AndroidX Test and Android OS Versions
androidx.test: 1.5.0
android OS: 13
### Link to a public git repo demonstrating the problem:
I did not make one because I am hoping there is a quick solution or that it will be easy to reproduce with the code I copied and pasted above. If there is not quick solution and it is not simple to reproduce, I will be happy to make a repo. Please just let me know.
Beitragsleitfaden
Rechercherichtung
Beginne mit den im Issue gezeigten Aufrufen von ActivityScenario.launch und scenario.close, reproduziere das Problem anschließend auf Android 13 und untersuche die gemeldete Ausgabe von adb shell dumpsys activity recents. Vergleiche die Tasks von MainActivity und InstrumentationActivityInvoker$EmptyActivity, um festzustellen, ob beide entfernt werden sollten, wenn das Szenario geschlossen wird; abgeschlossen ist die Aufgabe, wenn das Verhalten erklärt oder die Bereinigung korrigiert und verifiziert wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, kotlin
- Bereich
- mobile, testing-qa
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 28/100