我应该如何通过活动链转发Intent参数?

Rup*_*ley 33 android android-intent android-activity

我有许多活动与Intents链接在一起,而一些Intents需要在附加组件Bundle中传递参数.当我必须通过多个活动转发参数时,我应该明确地复制每个参数还是有最佳实践方法?例如,我可以克隆复制当前的Intent作为调用其他子任务Intents的起点,这将(可能)复制所有以前的Bundle参数.

举个例子,假设你有一个文件浏览器Activity,它有以下两种模式之一:Expert和Novice.您希望将此状态传递给某个子任务Activity,如文件属性页面,您可以通过在启动它之前调用Intent上的putExtra("skillLevel","Expert")来完成此操作.现在,如果属性页面还有一个子任务Activity,例如压缩选项,你应该如何转发"skillLevel"参数?

小智 71

我不知道你为什么要使用构造函数复制所有其他属性.

intent.putExtras(oldIntent);
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.请注意,这intent是一个新创建的实例!

  • 强调`putExtras`末尾的“s”。错过了一会儿。 (2认同)

Cri*_*ian 26

我认为最好和更干净的方法是Intent使用Intent通过Intent(Intent)构造函数接收来初始化下一个.

Intent newIntent = new Intent(receivedIntent);
Run Code Online (Sandbox Code Playgroud)