我的应用程序可以通过推送打开。
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”第一次写入的额外内容。
请帮我明确我的意图
我看到了很多答案,但没有帮助
您似乎正在尝试从意图中删除额外的数据,但不支持以这种方式修改现有意图。一旦您在意图中设置了额外内容,就无法将其删除。您在 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")