我有2项活动。活动1有信息。活动2有一个表单来更新活动1中的信息。 如何返回活动1并显示更新信息? 当我从活动转移到另一个时,我应该使用finish()?
答案 0 :(得分:2)
开始另一项活动并不一定是单向的。您还可以启动另一项活动并收到结果。要接收结果,请调用startActivityForResult()(而不是startActivity())。
例如,您的应用可以启动相机应用并接收拍摄的照片。或者,您可以启动“人脉”应用,以便用户选择联系人,然后您就会收到联系人详细信息。
当然,响应的活动必须设计为返回结果。当它发生时,它将结果作为另一个Intent对象发送。您的活动在onActivityResult()回调中收到它。
答案 1 :(得分:1)
使用此模式..不必覆盖后退按下它将自动使用超级方法..因此,在活动1 中使用此字段var ..
BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// update the info and UI here
}
};
活动1 的 onResume()
LocalBroadcastManager.getInstance(mContext).registerReceiver(mBroadcastReceiver ,new IntentFilter("info"));
并在活动2
中Intent intent= new Intent("info");
intent.putExtras("infoss",*yourInfo*);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
注意 活动1 将自动更新正确的信息..您不需要使用onBackPressed()
逻辑
答案 2 :(得分:0)
在你的第一个活动中 enter image description here
在第二个Acrivity中,当您的工作完成并且您想要将数据从第二个活动发送到第一个活动时 enter image description here
在第一项活动中接收数据 enter image description here