J'ai implémenté une tâche asynchrone dans un service. Voici l'initialisation de la Notification de progression, que j'appelle de onPreExecute
.
mProgressNotificationManager = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence tickerText = "Download";
mProgressNotification = new Notification(R.drawable.ic_launcher, tickerText, System.currentTimeMillis());
context = this.getApplicationContext();
Intent mNotificationIntent = new Intent(context, ActivityClass.class);
PendingIntent mPendingIntent = PendingIntent.getActivity(context, 0, mNotificationIntent, 0);
//mProgressNotification.flags |= Notification.FLAG_AUTO_CANCEL;
mProgressNotification.flags = mProgressNotification.flags | Notification.FLAG_ONGOING_EVENT;
CharSequence title = "Downloading initializing...";
RemoteViews contentView = new RemoteViews(getPackageName(),
R.layout.noti);
contentView.setImageViewResource(R.id.status_icon,
R.drawable.ic_launcher);
contentView.setTextViewText(R.id.status_text, title);
contentView.setProgressBar(R.id.status_progress, 100, 0, false);
mProgressNotification.contentView = contentView;
mProgressNotification.contentIntent = mPendingIntent;
mProgressNotificationManager.notify(STATUS_BAR_NOTIFICATION, mProgressNotification);
Après cela, dans doInBackground
J'ai mis en place ma procédure de téléchargement, et ensuite je mets à jour la progression du téléchargement,
@Override
protected void onProgressUpdate(Integer... progress) {
super.onProgressUpdate(progress);
int mDownloadProgress = progress[0];
// Log.d(TAG,"AsyncTask : download In progress");
CharSequence title = "fileName" +": " + mDownloadProgress + "%";
mProgressNotification.contentView.setTextViewText(R.id.status_text, title);
mProgressNotification.contentView.setProgressBar(R.id.status_progress, 100,
mDownloadProgress, false);
mProgressNotificationManager.notify(STATUS_BAR_NOTIFICATION, mProgressNotification);
}
Il fonctionne bien. Il se met à jour correctement, mais le problème est que la barre de notification est suspendue. Je ne peux pas monter ou descendre la barre de notification. Je veux mettre à jour la barre de notification comme si je téléchargeais une application du marché Google (Play).
Merci...