我正在创建一个应用程序,我的活动导航设置如下
主要活动< - >结果 - >端
我的应用程序将通过主要活动中的意图发送数据到结果活动,结果活动将计算并显示数据。结果活动将返回计算结果返回主活动或确定已满足条件并启动结束活动。 End Activity将能够导航回Main Activity以启动应用程序而不传递任何数据。
我的问题是我无法弄清楚如何从结果活动中有效地将数据发送回主活动,同时可以选择在满足条件后将数据发送到结束活动。在进行研究时,我发现方法startActivityForResult但是我的困境是,一旦条件满足,我的结果活动可能不会总是将结果返回到主活动。
我是否应该将startActivityForResult用于主要活动和结果活动,并在满足条件后为结束活动启动新活动,或者在这种情况下使用共享首选项是更好的选择?
答案 0 :(得分:1)
点击此链接:https://developer.android.com/training/basics/intents/result.html
您不必调用startActivity(intent),而是调用: 主活动中的startActivityForResult(intent, requestCode (例如,= 2))。
然后在ResultActivity中,您必须在intent对象中添加所有附加信息和信息。在调用finish()之前,您必须调用 setData( requestCode = 2,intent)。
然后,在您的MainActivity中,您必须覆盖onActivityResult()函数并处理响应,如:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == 2) {
// Make sure the request was successful
}
}