androidNotificationCompat.Builder使用
1.首先,获取系统的通知服务:
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
吹口哨的歌2.发送一个最简单的通知
1.public void simpleNotice(View view) {
2.//此Builder为android.support.v4.app.NotificationCompat.Builder中的,下同。
3.Builder mBuilder = new Builder(this);
4.//系统收到通知时,通知栏上面显示的文字。
5.mBuilder.tTicker(天津,晴,2~15度,微风);
6.//显示在通知栏上的小图标
7.mBuilder.tSmallIcon(sult_answer);
8.//通知标题
9.mBuilder.tContentTitle(天气预报);
10.//通知内容
11.mBuilder.tContentText(天津,晴,2~15度,微风);
12.邕怎么读
13.猜明星名字//设置大图标,即通知条上左侧的图片(如果只设置了小图标,则此处会显示小图标)
14.mBuilder.tLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.share_sina));
15.//显示在小图标左侧的数字
16.mBuilder.tNumber(6);
17.
18.//设置为不可清除模式
19.mBuilder.tOngoing(true);
20.
21.//显示通知,id必须不重复,否则新的通知会覆盖旧的通知(利用这一特性,可以对通知进行更新)
22.nm.notify(1, mBuilder.build());
23.}
3.删除一个通知。参数即为通知的id
nm.cancel(1);
4.发送一个通知,点击通知后跳转到一个Activity,从这个Activity返回后,进入程序内的某
一个页面(一般为主页)
1.//点击通知进入一个Activity,点击返回时进入指定页面。
2.public void resultActivityBackApp(View view) {
3.Builder mBuilder = new Builder(this);
4.mBuilder.tTicker(通知标题2);
5.mBuilder.tSmallIcon(R.drawable.ic_launcher);
6.mBuilder.tContentTitle(通知标题2);
7.mBuilder.tContentText(点击通知进入一个Activity,点击返回时进入指定页面。);
8.
9.//设置点击一次后消失(如果没有点击事件,则该方法无效。)
10.mBuilder.tAutoCancel(true);
11.
12.//点击通知之后需要跳转的页面
13.Intent resultIntent = new Intent(this, ResultActivityBackApp.class);
14.
15.//使用TaskStackBuilder为“通知页面”设置返回关系
紧急避孕药会影响月经吗16.TaskStackBuilder stackBuilder = ate(this);
17.//为点击通知后打开的页面设定 返回 页面。(在manifest中指定)
18.stackBuilder.addParentStack(ResultActivityBackApp.class);
19.stackBuilder.addNextIntent(resultIntent);
20.
21.PendingIntent pIntent = PendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
22.mBuilder.tContentIntent(pIntent);
23.// mId allows you to update the notification later on.
24.nm.notify(2, mBuilder.build());
25.}
同时,需要在manifest中为点击通知后打开的Activity指定父Activity.
1.
2.
3.
4.
(其中,activity的属性parentActivityName为API 16中的属性,meta-data中的代码为兼容API 16以下。因此,对于大多数程序,这两个地方都得写。)
5.和上述4类似,只是在打开的Activity中返回时回到home页
1.//点击通知进入一个Activity,点击返回时回到桌面
2.public void resultActivityBackHome(View view) {
3.Builder mBuilder = new Builder(this);
4.mBuilder.tTicker(通知标题3);
5.mBuilder.tSmallIcon(R.drawable.ic_launcher);
6.mBuilder.tContentTitle(通知标题3);
7.mBuilder.tContentText(点击通知进入一个Activity,点击返回时回到桌面);
8.
9.//设置点击一次后消失(如果没有点击事件,则该方法无效。)
10.mBuilder.tAutoCancel(true);
11.
12.Intent notifyIntent = new Intent(this, ResultActivityBackHome.class);
13.notifyIntent.tFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
关于爱国的手抄报14.PendingIntent pIntent = Activity(this, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);星星的故事
15.mBuilder.tContentIntent(pIntent);
16.
17.nm.notify(3, mBuilder.build());
18.}
6.带进度条的通知
1.public void progressNotice(View view) {
2.final Builder mBuilder = new Builder(this);
3.mBuilder.tTicker(通知标题4);
4.
5.阿炳的故事mBuilder.tContentTitle(Picture Download)
6..tContentText(Download in progress)
7.吃什么补睾丸.tSmallIcon(R.drawable.ic_launcher);
8.
9.// Start a lengthy operation in a background thread
10.new Thread(new Runnable() {
11.@Override
12.public void run() {
13.int progress;
14.for (progress = 0; progress <= 100; progress++) {
15.// Sets the progress indicator to a max value, the current completion percentage,
16.// and determinate state
17.mBuilder.tProgress(100, progress, fal);
18.
19.//不明确进度的进度条
20.// mBuilder.tProgress(0, 0, true);
21.
22.nm.notify(4, mBuilder.build());
23.// 模拟延时
24.try {
25.Thread.sleep(200);
26.} catch (InterruptedException e) {
27.e.printStackTrace();
28.}