2015-04-28 116 views
2

我在更新服务中的自定义通知值时遇到问题。 我使用RemoteView并希望每秒更新textview,而且我没有任何真正的想法来做到这一点。 这是我的代码:更新每秒通知中的RemoteViews

int icon = R.drawable.ic_launcher; 
long when = System.currentTimeMillis(); 

Notification notification = new Notification(icon, "Custom Notification", when); 
NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 

contentView = new RemoteViews(getPackageName(), R.layout.notificationview); 
contentView.setImageViewResource(R.id.image, R.drawable.ic_launcher); 
contentView.setTextViewText(R.id.text, "This is a custom layout"); 
contentView.setTextViewText(R.id.title, "Title"); 
notification.contentView = contentView; 

Intent notificationIntent = new Intent(this, MainActivity.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.contentIntent = contentIntent; 
notification.flags |= Notification.FLAG_NO_CLEAR; 

startForeground(13, notification); 

有什么想法吗?

+0

'每秒更新textview' - 这是一个非常糟糕的主意。 –

+0

@MarcinOrlowski你有什么建议更新通知? – meysam

回答

2

我还没有完全想出如何正确更新通知文本,但我注意到,在RemoteView中更新TextView将导致一些性能问题,它也将导致整体ui减慢相当许多。反正...与通知乱搞后,这是目前我有:

NotificationCompat.Builder notiBuilder = new NotificationCompat.Builder(activity); 

notiBuilder.setContentIntent(pendingIntent) 
    .setSmallIcon(R.drawable.ic_launcher) 
    .setContentTitle("Sup bro!") 
    .setContentText("It works dude!") 
    .addAction(R.drawable.icon, "Some Text", pendingAction); 

NotificationManager.notify(NOTIFICATION_ID, notify); 

,然后你可以更新通知文本是这样的:使用这种方法,你不应该有

notiBuilder.setContentText("Updating text..."); 
NotificationManager.notify(NOTIFICATION_ID, notify); 

任何性能问题。我仍在努力,如果我找出生病让你知道。