0
アクティビティ(A、B、C)が3つあり、アクティビティAがBを開始し、BがCを開始したとします。Android - 結果をどのようなアクティビティに配信するのですか?
アクティビティCの開始時にアクティビティBが終了するため、 。
このコードはない作品を実行します。
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