我正在研究一个android应用程序,可以通过短信由其他手机控制。我使用PreferenceScreen作为布局(应用程序的设置部分)。调用onResume()时会更新布局。
当命令(短信)通过其他手机发送时,后台运行的服务将侦听传入的短信,并更改保存在SharedPreferences中的设置。为了查看这些更改,我的活动需要在onResume中执行代码。如果我返回到前面的活动并返回,我可以看到更改。
我希望在运行服务更改SharedPreferences时立即显示这些更改。我该怎么做才能做到这一点?
发布于 2012-04-14 08:58:03
如下所示:
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();
}
}https://stackoverflow.com/questions/10150038
复制相似问题