@@ -82,19 +82,25 @@ class MainActivity : AppCompatActivity() {
8282 setContentView(root)
8383 }
8484
85- private fun launchActivity (className : String , index : Int ) {
86- val intent = Intent ().apply {
87- setClassName(this @MainActivity, className)
88- putExtra(" title" , " Instance $index " )
89-
90- var flags = 0
91- if (cbNewTask.isChecked) flags = flags or Intent .FLAG_ACTIVITY_NEW_TASK
92- if (cbMultipleTask.isChecked) flags = flags or Intent .FLAG_ACTIVITY_MULTIPLE_TASK
93- if (cbNewDocument.isChecked) flags = flags or Intent .FLAG_ACTIVITY_NEW_DOCUMENT
94- if (cbRetainInRecents.isChecked) flags = flags or Intent .FLAG_ACTIVITY_RETAIN_IN_RECENTS
95-
96- addFlags(flags)
97- }
98- startActivity(intent)
85+ private var documentIdCounter = 0
86+
87+ private fun launchActivity (className : String , index : Int ) {
88+ val intent = Intent ().apply {
89+ setClassName(this @MainActivity, className)
90+ putExtra(" title" , " Instance $index " )
91+
92+ // 为文档模式生成唯一 data URI,确保每次都是新文档
93+ val docId = documentIdCounter++
94+ data = android.net.Uri .parse(" content://com.example.multitaskdemo.document/$docId " )
95+
96+ var flags = 0
97+ if (cbNewTask.isChecked) flags = flags or Intent .FLAG_ACTIVITY_NEW_TASK
98+ if (cbMultipleTask.isChecked) flags = flags or Intent .FLAG_ACTIVITY_MULTIPLE_TASK
99+ if (cbNewDocument.isChecked) flags = flags or Intent .FLAG_ACTIVITY_NEW_DOCUMENT
100+ if (cbRetainInRecents.isChecked) flags = flags or Intent .FLAG_ACTIVITY_RETAIN_IN_RECENTS
101+
102+ addFlags(flags)
99103 }
104+ startActivity(intent)
105+ }
100106}
0 commit comments