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 次 |
最近记录: |