
[英]Activity started with startActivityForResult() not returning to calling Activity
[英]Refreshing an activity started with startActivityForResult
我有一个包含几个活动的应用程序,每个活动包含几个片段。 后台有一个同步服务,可导致活动刷新
Intent refreshIntent = getIntent();
refreshIntent.putExtra("message", Globals.MSG_DATA_UPDATE);
finish();
startActivity(refreshIntent);
因为这是在数据集更改后立即刷新所有基础片段的最简单方法。 如果活动最终返回到调用方,我将使用附加项来确定必须设置哪个结果。
问题在于,这种刷新以保留requestCode的方式破坏了startActivityForResult()和onActivityResult(),但是resultCode和Intent始终为null(我尝试了为“ onActivityResult:Intent始终为null”提议的所有变体。 )
一种可能但非常不切实际的解决方案是刷新所有片段(我在这里使用片段分页器)而不是活动,但是如果可以避免的话,这会容易得多,尤其是因为片段和分页器适应数据在onCreate()中,我将不得不取消所有内容并重新运行该代码。
我需要将Intent返回到调用活动,因为当数据集更改并且唯一的方法是使用Intent extra或resultCode时,它们也需要刷新。 那么有可能刷新活动而不破坏结果的返回吗?
我自己得到了答案。
Recreate()
这可以做很多事情,而不是finish()-建议刷新的startActivity命令:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.