8 android bundle android-intent
我有一个启动我的活动的通知,并使用intent的putExtra()函数传递消息.然后,该消息将在活动的onCreate函数中显示给用户.由于方向更改而重新启动应用程序时,将再次显示该消息,因为它仍在意图的捆绑数据中.
如何删除额外数据?
我尝试了以下方法:
Bundle bundle = getIntent().getExtras();
if (bundle.getBoolean("showMessage")) {
// ... show message that is in bundle.getString("message")
// remove message
bundle.remove("showMessage");
}
Run Code Online (Sandbox Code Playgroud)
但是在方向改变之后仍然会显示该消息,似乎所使用的意图不是我改变的意图,而是原始意图.我找到的唯一解决方法是将showMessage另外保存在o中nSaveInstanceState()
.还有另外一种方法吗?或者这是要走的路?
小智 21
(简单)解决方案是:
而不是打电话
bundle.remove("showMessage");
Run Code Online (Sandbox Code Playgroud)
我现在用
getIntent().removeExtra("showMessage");
Run Code Online (Sandbox Code Playgroud)
它按预期工作.看起来像getIntent().getExtras()返回一个副本,而不是一个引用.
归档时间: |
|
查看次数: |
7432 次 |
最近记录: |