我有4个活动A,B,C,D。 A startsActivityForResult B,B startsActivityForResult C和C startsActivityForResultD。
我想在活动A上执行任务X(取决于活动B的结果)。当前,我使用setResult() / onActivityResult()在活动之间转发和返回消息。这很脆弱,因为活动B / C可能随时结束,在这种情况下,消息无法通过setResult()传递回去。我们在这里有更好的沟通方式吗?不依赖活动的生命周期。

最佳答案

由于您要传递简单的数据类型,并且要在Activity的生命周期内保留这些数据类型,因此SharedPreference是一种解决方案。这是有关如何使用SharedPreference的示例

写作:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();


阅读:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

关于android - Android:在 Activity 之间来回传递消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28617564/

10-12 00:19
查看更多