Android 如何更改其他活动的变量?

Android 如何更改其他活动的变量?,android,variables,android-activity,Android,Variables,Android Activity,所以我有两个活动:主要是所有数据,次要是偏好。在主活动中有两个数组,我想从Preferences活动中访问它们并使用这两个数组。事实上,我需要将数组中的所有数据重置为默认值。有什么办法吗 我尝试使用SharedReferences,因为我将所有这些数据都存储在其中。我更改了Preferences活动中的值,但主活动中的数据没有更改,我猜是因为它没有重新启动,只是暂停了。您可以使用共享引用和/或更新活动的onResume()方法中的数据 以下是一些基本示例: public class MainAc

所以我有两个活动:主要是所有数据,次要是偏好。在主活动中有两个数组,我想从Preferences活动中访问它们并使用这两个数组。事实上,我需要将数组中的所有数据重置为默认值。有什么办法吗


我尝试使用SharedReferences,因为我将所有这些数据都存储在其中。我更改了Preferences活动中的值,但主活动中的数据没有更改,我猜是因为它没有重新启动,只是暂停了。

您可以使用共享引用和/或更新活动的
onResume()
方法中的数据

以下是一些基本示例:

public class MainActivity extends Activity implements OnSharedPreferenceChangeListener {
    private SharedPreferences prefs;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // get your SharedPreferences objects
        prefs = ...;
    }

    // This method will be called every time your activty comes to the front
    @Override
    protected void onResume() {
        super.onResume();

        // register a listener to get notified when the preferences change
        prefs.registerOnSharedPreferenceChangeListener(this);

        // do whatever you need to do to update the data
        updateData();
    }

    @Override
    protected void onPause() {
        super.onPause();

        // unregister listener if another activity comes to the front to save battery
        prefs.unregisterOnSharedPreferenceChangeListener(this);
    }

    // this method will be called when some preference changes
    public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
        // do whatever you need to do to update the data
        updateData();
    }
}

你能给我举个例子吗?我不明白如何正确地做。我在答案中加了一个例子。如果您知道在活动处于活动状态时首选项不会更改(例如,因为它们只能在另一个活动中更改,而不能在某种后台任务中更改),只需更新onResume()方法中的所有内容就足够了。