package com.androidbook.notification;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RemoteViews;
public class NotificationExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
notification(65);
}
public void notification(int progress) {
// 获得Notification对象
Notification nfo = new Notification(
android.R.drawable.stat_sys_download, "开始", System
.currentTimeMillis());
// 初始化
Intent intent = new Intent(getApplication(),
NotificationExampleActivity.class);
// 渲染自定义的布局文件
nfo.contentView = new RemoteViews(getApplication().getPackageName(),
R.layout.notification);
// 进行自定义布局中TextView和ProgressBar的值的设置
refreshState(nfo, "dddd", android.R.drawable.stat_sys_download,
progress, "正在下载", intent);
// 获得NotificationManager对象
NotificationManager nnm = (NotificationManager) getApplication()
.getSystemService(Context.NOTIFICATION_SERVICE);
// 发送通知
nnm.notify(R.string.app_name, nfo);
}
// 获得自定义的布局文件经过渲染后的view,并对其相应值进行设置
private void refreshState(Notification nfo, String tip, int icon,
int progress, String text, Intent intent) {
// 找到R.id.update_text 的TextView,并设置相应的值。
nfo.contentView.setTextViewText(R.id.update_text, text);
// 设置布局文件中R.id.update_progress的ProgressBar的值。
nfo.contentView.setProgressBar(R.id.update_progress, 100, progress,
false);
nfo.icon = icon;
nfo.tickerText = tip;
nfo.when = System.currentTimeMillis();
nfo.contentIntent = PendingIntent.getActivity(getApplication(),
R.string.app_name, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
}
评论