Что я сделал хранить уведомление в переменном уровне класса .. Возможно изменить функцию createDownloadNotification и использовать то, что у вас есть выше, за исключением сделать уведомление переменным доступным для всего класса.
Затем есть другая функция (что-то вроде updateDownloadNotification), которая вызовет setLatestEventInfo в уведомлении с обновленной информацией.
Также обратите внимание, что вам необходимо вызвать mNotificationManager.notify (HELLO_ID, уведомление); после каждого обновления или ничего не изменится.
--- Обновление --- На самом деле у вас может быть только 1 функция и проверьте, является ли уведомление нулевым (если нет, создайте его), в противном случае используйте то, что у вас уже есть.
Пример:
public class YourClass extends Service { //or it may extend Activity
private Notification mNotification = null;
public void displaymessage(String string) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.icon;
CharSequence tickerText = "Shamir Download Service";
long when = System.currentTimeMillis();
if (mNotification == null) {
mNotification = new Notification(icon, tickerText, when);
}
//mNotification.when = when;//not sure if you need to update this try it both ways
Context context = getApplicationContext();
CharSequence contentTitle = "Downloading Content:";
notification.setLatestEventInfo(context, contentTitle, string, null);
final int HELLO_ID = 2;
mNotificationManager.notify(HELLO_ID, mNotification);
}
Мой код на самом деле немного отличается тем, что все, что я обновлением является iconLevel уведомления о каждом обновлении, поэтому я не уверен, что с каждым изменением, если вам нужно обновить mNotification.when
Попробуйте и посмотрите и сообщите об этом.
Также я бы сделал некоторые переменные из этой функции. Обычно вы называете переменную mSomething, если она является частной переменной экземпляра класса. Вот что я бы рекомендовал:
private Notification mNotification = null;
private NotificationManager mNotificationManager = null;
private static final int HELLO_ID = 2;
public void displaymessage(String string) {
String ns = Context.NOTIFICATION_SERVICE;
if (mNotificationmanager == null) {
mNotificationManager = (NotificationManager) getSystemService(ns);
}
int icon = R.drawable.icon;
CharSequence tickerText = "Shamir Download Service";
long when = System.currentTimeMillis();
if (mNotification == null) {
mNotification = new Notification(icon, tickerText, when);
}
//mNotification.when = when;//not sure if you need to update this try it both ways
Context context = getApplicationContext();
notification.setLatestEventInfo(context, contentTitle, string, null);
mNotificationManager.notify(HELLO_ID, mNotification);
}
Не полностью быть член и обходить ваш вопрос, но посмотрите на [DownloadManager] (http://developer.android.com/reference/android/app/DownloadManager .html) – hwrdprkns