我正在开发一个应用程序,我将收到GCM通知,并且我将广播发送到我的主要活动,以便我可以更新用户界面。如果我刚刚打开应用程序并且我的主要活动可见,则UI正在更新。但是当我导航到任何其他屏幕并返回主要活动时,这次当我收到广播时,UI不会更新。我调试并且代码执行正常,当我检查textview的mText值时,它仍显示旧值。我也尝试过invalidate()和postInvalidate()方法。我现在不知道我'做错了。有人可以帮帮我吗
注意:我使用setSelected(true)为文本视图应用选框。
Intent newi = new Intent("rating-changed");
newi.putExtra("message", "notify");
LocalBroadcastManager.getInstance(context).sendBroadcast(newi);
private void updateUI(final String pSong, final String pArt, final String cSong, final String cArt, final String nSong, final String nArt){
runOnUiThread(new Runnable() {
public void run() {
ImageView ivPrevSong = (ImageView)findViewById(R.id.ivPrevSong);
ImageView ivCurSong = (ImageView)findViewById(R.id.ivCurSong);
ImageView ivNextSong = (ImageView)findViewById(R.id.ivNextSong);
TextView tvPrevSongName = (TextView)findViewById(R.id.tvPrevSongName);
tvPrevSongName.setSelected(true);
TextView tvCurrSongName = (TextView)findViewById(R.id.tvCurrSongName);
tvCurrSongName.setSelected(true);
TextView tvNextSongName = (TextView)findViewById(R.id.tvNextSongName);
tvNextSongName.setSelected(true);
tvPrevSongName.setText(pSong);
tvCurrSongName.setText(cSong);
tvNextSongName.setText(nSong);
tvPrevSongName.refreshDrawableState();
tvCurrSongName.refreshDrawableState();
tvNextSongName.refreshDrawableState();
}
});
}