0
假设有3活动(A,B和C)和活性A开始B,和B,因为活动B完成开始C.Android - 如何交付结果到任何活动?
我需要活动Ç递送结果到活动A,当开始活动Ç 。
这个代码不工作:
public class ActivityA extends Activity {
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == ActivityC.REQUEST_CODE) {
// need this code be called when activityC finish
}
super.onActivityResult(requestCode, resultCode, data);
}
}
public class ActivityB extends Activity {
void startActivityC() {
Intent intent = new Intent();
intent.setClass(this, ActivityC.class);
startActivityForResult(intent, ActivityC.REQUEST_CODE);
finish();
}
}
public class ActivityC extends Activity {
public static final int REQUEST_CODE = 12345;
void finishActivity() {
Intent intent = new Intent();
intent.putExtra("example", "example");
setResult(RESULT_OK, intent);
finish();
}
}
任何想法如何实现这一点?
谢谢!
有没有办法让ActivityC直接将结果传递给ActivityA? – Rodrigo
不直接。有间接的方法,例如通过一个静态实例控制的消息处理程序,但这里的问题是范围。活动A根本不知道活动C存在,反之亦然。因为C只是由B带来的,所以从C到A的通信的最佳方法是通过B.如果B刚刚启动C然后退出,那么B是否需要? C可以做什么吗?B可以直接从A发起? – Geekswordsman