android / android/android-test
Tasks not cleaned up after `ActivityScenario.launch`
- Lingua principale
- Java
- Stelle
- 1.2k
- Fork
- 342
- Merge medio
- 11h 29m
- PR unite (30g)
- 2
Descrizione
### 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con le chiamate a ActivityScenario.launch e scenario.close mostrate nell’issue, quindi riproduci il problema su Android 13 e ispeziona l’output segnalato di adb shell dumpsys activity recents. Confronta i task di MainActivity e InstrumentationActivityInvoker$EmptyActivity per determinare se entrambi debbano essere rimossi quando lo scenario viene chiuso; il lavoro è completato quando il comportamento è stato spiegato oppure la pulizia è stata corretta e verificata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, kotlin
- Ambito
- mobile, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 28/100