Android 动态更新接口

Android 动态更新接口,android,android-layout,service,Android,Android Layout,Service,我正在开发一个android应用程序,它可以通过短信被其他手机控制。我正在使用首选项屏幕作为布局(应用程序的设置部分)。调用onResume()时,布局将更新 当通过其他移动设备发送命令(SMS)时,后台运行的服务会监听传入的SMS并更改保存在SharedReferences中的设置。为了查看这些更改,我的活动需要执行onResume中的代码。如果我回到上一个活动并返回,我可以看到更改 我希望在运行服务更改SharedReferences后立即显示更改。我应该怎么做才能让它发生呢?类似这样的事情

我正在开发一个android应用程序,它可以通过短信被其他手机控制。我正在使用
首选项屏幕
作为布局(应用程序的设置部分)。调用
onResume()
时,布局将更新

当通过其他移动设备发送命令(SMS)时,后台运行的服务会监听传入的SMS并更改保存在SharedReferences中的设置。为了查看这些更改,我的活动需要执行
onResume
中的代码。如果我回到上一个活动并返回,我可以看到更改

我希望在运行服务更改SharedReferences后立即显示更改。我应该怎么做才能让它发生呢?

类似这样的事情:

public class MyActivity extends Activity implements OnSharedPreferenceChangeListener
{
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state)
    {
      /* get shared preferences */
      SharedPreferences mySharedPreferences = getSharedPreferences(PREFS_NAME, 0);

      /* register listener for changes to the values within the shared preferences */
      mySharedPreferences.registerOnSharedPreferenceChangeListener(this);
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
    {
      /* perform application processing */
      ...

      /* update layout */
      View myView = findViewById(id.my_view);

      /* invalidate the view causing it to be redrawn */
      myView.invalidate();
    }
}

谢谢你的快速回复。如果对与
mySharedPreferences
关联的对象进行了更改,则此代码有效。在我的服务中,我正在创建一个新的SharedReferences实例。因此,如果更改是在服务内部进行的,则不会调用当前活动中的onSharedPreferenceChanged!检查这里:我有你的代码,但这是问题所在