에 대한
<activity
android:name="A"
android:label="@string/app_name"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResultsActivity" />
</activity>
<activity
android:configChanges="orientation|screenSize"
android:name="B"
android:label="B"
android:launchMode="singleInstance"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:configChanges="orientation|screenSize"
android:name="C"
android:label="C"
android:launchMode="singleInstance"
android:theme="@style/AppTheme.NoActionBar">
</activity>
덕분에, 새 작업이 생성 된 것을 알 수있다. dumpsys
을 통해 두 가지 작업을 찾을 수 있지만 작업 관리자에는 하나의 작업 만 표시됩니다. 이것은 시스템 버그 일 수 있습니다. 그리고 작업 B가 taskAffinity
으로 설정되면 작업 관리자에 두 개의 작업이있을 수 있습니다.
당신은에서 singleInstance의 B를 시작하기 때문에,이있을 것 두 가지 작업은 존재 : 작업 1 활동을 포함, 작업이이 활동 B.이
당신 만이 들어있는 작업 관리자에서 작업이를 열고 포함하는 동안 singleIntance 활동 B, 그래서 당신 수 없습니다 다시 활동 A.에
버튼을 다시 사용하는 경우 그것은 잘 작동
에 관계없이 활동이 새 작업이나 활동과 같은 작업에서 시작 여부
때문에 그게 시작된, 박쥐 k 버튼을 누르면 항상 이전 활동으로 이동합니다.
Developer Document: Tasks and Back Stack에서 얻을 수 있습니다.
정말 필요한 경우 singleInstace 모드를 사용하지 않는 것이 좋습니다.
예상대로 작동하지 않을 수 있습니다. taskAffinity도 설정하지 않으면'launchMode = "singleInstance"'설정은 쓸모가 없습니다. A-> B-> C-> B-> C로 전환하는 방법을 게시하십시오. 각 전환에 대해'startActivity()'를 호출하면 작업에 B와 C의 인스턴스가 여러 개있을 것입니다. –