首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更新接口

动态更新接口
EN

Stack Overflow用户
提问于 2012-04-14 08:41:17
回答 1查看 165关注 0票数 0

我正在研究一个android应用程序,可以通过短信由其他手机控制。我使用PreferenceScreen作为布局(应用程序的设置部分)。调用onResume()时会更新布局。

当命令(短信)通过其他手机发送时,后台运行的服务将侦听传入的短信,并更改保存在SharedPreferences中的设置。为了查看这些更改,我的活动需要在onResume中执行代码。如果我返回到前面的活动并返回,我可以看到更改。

我希望在运行服务更改SharedPreferences时立即显示这些更改。我该怎么做才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2012-04-14 08:58:03

如下所示:

代码语言:javascript
复制
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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10150038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档