0

这是一个使用 Android Studio 的 Android 应用程序的 Java 语言项目。

我从Activity AtoActivity B然后回到Activity A。没有任何东西从Activity A到转移,但在从到Activity B的途中有。这是将您带到的代码:Activity BActivity AAcitvity BActivity 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 Afrom时Activity B,我savedInstanceState就是null。有谁知道为什么从to回来savedInstancedState的时候?nullActivity BActivity A

4

0 回答 0