这可能是一个愚蠢的问题,但有一条规则规定必须通过消费活动明确删除意图附加内容,或者只有在您回收Intent对象时才会这样做吗?
换句话说,如果我总是通过执行以下操作链接到下一个活动:
Intent i = new Intent(MyCurrentActivity.this, FooActivity.class);
i.putExtra("first", "stringvalue");
i.putExtra("second", 69L);
startActivity(i);
然后,在FooActivity中,我把它们读出来......
String first = getIntent().getStringExtra("first");
long second = getIntent().getLongExtra("second");
...我是否还必须明确删除它们以避免意外污染未来活动的意图,或者从我抓住它们的那一刻起,我可以忘记它们甚至存在并继续前进吗?
我发誓我记得读过一些说我必须删除的东西,但是我再也找不到它了,而且我怀疑它可能只适用于重用的意图对象。
答案 0 :(得分:2)
如果您计划使用相同的Intent对象但不需要(也不想要)额外内容,则可以删除它们。相反,如果你想用相同的额外内容调用相同的意图,那么保留它们。最后,如果对象将被销毁,谁在乎附加内容?
在任何情况下,我都会决定来电者的活动,而不是意图的接收者。