Android:从多个活动中获取数据并一起处理



我想设计一个按钮让用户选择一个图像和一个音频,然后应用程序创建一个视频与图像和音频。

我希望以一种方式实现:

  1. 用户点击按钮

  2. 启动从图库中选择照片的意图。

  3. 在用户选择一张照片并返回结果后,启动第二个意图来选择一个音频。

  4. 用户选择音频后,应用程序为其生成视频。

实现它们的最佳方式是什么?

有可能像下面这样写吗?

fun onClick() {
getImage.launch(firstIntent)
getAudio.launch(secondIntent)
process(image, audio)
}

如果没有,我仍然可以使用分隔的ActivityResult回调来编写它们,如


fun process(val image: Uri, val audio: Uri) {
...
}
val getAudio = registerForActivityResult(...) {result ->
val audio = getAudio(result.data)
// get image somewhere

process(image, audio)
}
val getImage = registerForActivityResult(...) {
val image = getImage(result.data)
// save image somewhere
val intent = getAudioIntent()
getAudio.launch(intent)
}

fun onClick() {
val intent = getImageIntent()
getImage.launch(intent)
}

我面临的一个困难是在启动第二个意图时将图像存储在某个地方。

第一种方法是行不通的,尝试像那样启动两个intent最多只能导致一个启动,然后另一个在它上面,并且可能导致1在backstack中被跳过。唯一的方法是启动activityforresult,等待结果,然后以同样的方式启动下一个活动。

相关内容

  • 没有找到相关文章

最新更新