我已经将Async Task实现为Service.这是初始化进度通知,我从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);
之后在doInBackground中,我实现了我的下载程序,之后我正在更新下载进度,
@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);
}
它正常工作..正确更新,但问题是,通知栏被绞死.我无法向上通知栏.我想更新通知栏,例如从谷歌市场下载任何应用程序(播放).
谢谢…
最佳答案 似乎正在发生的是您正在替换通知,这意味着要显示新通知.
您需要做的是更新通知而不是替换它.
看看这个:)
http://developer.android.com/guide/topics/ui/notifiers/notifications.html#Updating