Android notification ticker text 详解

状态栏通知常涉及到的三个参数:

ticker text

title

content

将状态栏下拉完全展示后,title和content分别对应一则通知的标题和正文。

ticker text 则是状态栏非下拉展示时,在状态栏显示1~2秒的提示文字。


ticker text 的作用用

1. 提示用户,我们的APP在通知栏新建了一则通知,下拉可查看详情。

2. 提示用户,APP的重要状态变更。


下面的代码模拟一个下载的事件,下载开始 和 下载结束  时会用ticker text 提示用户。其余进度则用 title + content 展示。

效果如下:


代码如下:

从代码执行效果中可以看出,我们每次执行 notify(..) 函数时,ticker text 和上一次不同时,ticker text 才会被展示。

package com.example.androiddemo;

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;

public class MainActivity extends Activity {

	public Notification.Builder mBuilder;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		initDownloadProgressNotif();
		
		Thread t = new Thread() {
			
			public void run() {
				int i = 0;
				for (; i <= 100; i+=5) {
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					
					final int j = i;
					MainActivity.this.runOnUiThread(
							new Runnable() {
								

						@Override
						public void run() {
							updateProgressNotif(j);
						}
					});
				}
			}
		};
		t.start();
	}

	private void updateProgressNotif(int progress) {
		
		if (progress == 100) {
			mBuilder.setContentTitle("下载完成");
			mBuilder.setOngoing(false);
			mBuilder.setTicker("下载完成");
		}

		mBuilder.setProgress(100, progress, false);
		mBuilder.setContentText("已完成  " + progress + "%");
		NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		manager.notify(1, mBuilder.build());
	}

	private void initDownloadProgressNotif() {
		Intent notificationIntent = new Intent(this, MainActivity.class);
		PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
				notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

		mBuilder = new Notification.Builder(this);
		mBuilder.setTicker("开始下载更新包");
		mBuilder.setContentTitle("下载中...");
		mBuilder.setSmallIcon(R.drawable.ic_launcher);
		mBuilder.setContentIntent(pendingIntent);
		mBuilder.setOngoing(true);
		mBuilder.setProgress(0, 0, true);
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zonson9999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值