use*_*302 6 android onresume xamarin.android
我正在使用a LocalActivityManager来在不同的选项卡中进行活动,当我从一个选项卡切换到另一个选项卡时,我开始Activity对应于所选的选项卡.我的问题很简单:
如果我点击选项卡1,创建intent11并在第一时间,该方法onCreate(Bundle emptyBundle)的Activity1调用.如果我单击选项卡2,我创建intent2并onCreate()调用该方法.然后,当我单击tab1,我创建时intent12,该方法onCreate(Bundle emptyBundle)未被调用但onResume()被调用(正常行为).
我把在特殊的配件intent11和intent12创造Activity1,所以我用访问它getIntent().getExtras().
我的问题是:我第二次去tab1,intent12用来启动Activity,但结果getIntent()仍然是intent11.所以我无法撤回设置的额外内容intent12,我只能检索设置的额外内容intent11.
我究竟做错了什么 ?我应该避免在意图中加入额外的()吗?谢谢.
谢谢.
PS:目前,我设置了一个特殊的标志,以强制调用onCreate(),但我确信这不是一个好方法.
小智 6
我相信你要找的是:https: //developer.android.com/reference/android/app/Activity.html#onNewIntent%28android.content.Intent%29
onNewIntent(Intent newIntent)允许您覆盖用于创建/恢复具有最新意图的应用程序的先前意图.
不,您应该仍然可以添加额外内容,但我想知道当您创建新意图时额外内容是否会被“覆盖”,所以我建议尝试以下操作:
将您的额外内容放入您创建的第一个意图的捆绑包中,然后在创建下一个意图之前,将您的捆绑包设置为捆绑包中已经存在的任何内容
Bundle bundle = getResultExtras(false);
Run Code Online (Sandbox Code Playgroud)
然后您可以创建新的意图,然后当您准备好从捆绑中获取数据时,您可以执行以下操作
Bundle bundle = getResultExtras(false);
Run Code Online (Sandbox Code Playgroud)
再次然后像平常一样从捆绑包中获取数据,只需确保您放入 Intent1 中的额外内容与您放入 Intent2 中的额外内容不具有相同的键名称
希望对一些人有帮助。
如果您需要更具体的帮助,发布您的代码可能会很有用。
| 归档时间: |
|
| 查看次数: |
9974 次 |
| 最近记录: |