Skip to content

Commit 87d10c9

Browse files
authored
Enhance launchActivity with document ID handling
Added unique data URI generation for document mode.
1 parent b3a3f08 commit 87d10c9

1 file changed

Lines changed: 20 additions & 14 deletions

File tree

app/src/main/java/com/example/multitaskdemo/MainActivity.kt

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)