TextView无法从广播更新

时间:2015-10-23 05:52:43

标签: android textview

我正在开发一个应用程序,我将收到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();

            }
        });

   }

0 个答案:

没有答案