这是一个使用 Android Studio 的 Android 应用程序的 Java 语言项目。
我从Activity A
toActivity B
然后回到Activity A
。没有任何东西从Activity A
到转移,但在从到Activity B
的途中有。这是将您带到的代码:Activity B
Activity A
Acitvity B
Activity A
@Override
public void onClick(View v){
Intent main_intent = new Intent(PeriodicTableActivity.this, MainActivity.class);
main_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
main_intent.putExtra("Element", String.valueOf(v.getTag()));
startActivity(main_intent);
overridePendingTransition(R.anim.fade_in_fast, R.anim.fade_out_fast);
}
在从 Activity B 回到 Activity A 的路上,我想用它Bundle savedInstanceState
来恢复一个HashMap<Integer, ElementInfo>
而不是解析URL
填充HashMap
在打开 Android 应用程序的 web。
if (savedInstanceState != null)
elementInfoHashMap = (HashMap<Integer, ElementInfo>) savedInstanceState.getSerializable("ELEMENTS");
try {
InputStream input1 = getAssets().open("periodic_table.csv");
elementInfoHashMap.putAll(pullElementURLData());
} catch (IOException | NetworkOnMainThreadException | ExecutionException | InterruptedException e) {
e.printStackTrace();
}
这是HashMap<Integer, ElementInfo>
我离开时的存储方式Activity A
。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putSerializable("ELEMENTS", elementInfoHashMap);
}
我的问题是,每当我返回Activity A
from时Activity B
,我savedInstanceState
就是null
。有谁知道为什么从to回来savedInstancedState
的时候?null
Activity B
Activity A