如何替换额外的活动意图?

问题描述 投票:0回答:1

我的应用程序可以通过推送打开。

   val intentToMainActivity = Intent().apply {
      action = "action"
      type = "text/plain"
      flags = Intent.FLAG_ACTIVITY_NEW_TASK
      putExtra("EXTRA_KEY", moduleCode)
   }

我从 FirebaseService 获取 moduleCode 并根据此 moduleCode 打开所需的片段。 但我不知道如何删除名称为“EXTRA_KEY”的额外内容。

我尝试在活动被破坏时删除多余的内容

   override fun onDestroy() {
      intent.extras?.remove("EXTRA_KEY")
   }

但它不起作用。系统始终记住“EXTRA_KEY”第一次写入的额外内容。

请帮我明确我的意图

我看到了很多答案,但没有帮助

android android-intent
1个回答
0
投票

您似乎正在尝试从意图中删除额外的数据,但不支持以这种方式修改现有意图。一旦您在意图中设置了额外内容,就无法将其删除。您在 valintentToMainActivity 中创建的意图是一个单独的实例,从中删除额外内容不会影响启动您的活动的意图。

如果您想在 Activity 销毁时删除或清除额外的内容,可以通过将该值保存在 Activity 内的成员变量中,然后在 onDestroy 方法中将其设置为 null 来实现。

具体操作方法如下:

class YourActivity : AppCompatActivity() {
private var moduleCode: String? = null // Initialize it with null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    moduleCode = intent.getStringExtra("EXTRA_KEY")
   
© www.soinside.com 2019 - 2024. All rights reserved.