好的,所以上面的答案在一定程度上有效,但你不应该做你正在做的事情onStop
。您遇到的问题似乎来自您需要保存从调用活动中获得的额外内容。我将假设您发送的内容永远不会真正改变,并且您可以期望它始终发送相同数量的附加内容,但其中包含动态数据。
@Override
onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Intent intent = getIntent();
savedInstanceState.putStringArrayList("photos", intent.getStringArrayListExtra("some_string"));
}
然后在 onCreate 你可以做这样的事情:
onCreate(Bundle savedInstanceState) {
/*I assume you got stuff places so just fit it in somewhere nice*/
Intent resultIntent = new Intent();
if(savedInstanceState == null) {
//we know here that this is the first call to the second Activity
//So you can just put the Intent that was sent since we know it came from the calling Activity with the original stuff
resultIntent = getIntent();
} else {
resultIntent.putStringArrayListExtra("photos", bundle.getStringArrayListExtra());
}
}
所以希望你明白我在那里做了什么。它本质上为您提供了一种方法来访问您需要在重新加载之后持久保存的任何内容。现在setResult(RESULT_OK, resultIntent);
,如果定向问题从未存在,您通常可以在任何地方进行操作。因此,正如您看到的那样,必须覆盖您可能只需要的东西的代码更少。让我知道这是否有意义。哦,如果你这样做,不要添加任何东西来禁用方向:)