android Notification的例子

	public void onPostDirect(View v) {
		// 直接跳转activity,启动intent中的activity的时候直接吧activity作为一个任务推倒app中activity的栈顶;
		// 点击返回的时候会跳到栈的另外一个activity;
		// 1提醒框的view设置
		NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		mBuilder.setTicker("post notification");
		mBuilder.setContentTitle("提示信息,你有短信也");
		mBuilder.setContentText("今天吃了吗");
		mBuilder.setSmallIcon(android.R.drawable.stat_notify_chat);
		mBuilder.setContentInfo("牛X");
		mBuilder.setAutoCancel(true);
		// 2点击消息提醒框后,直接跳转intent目标activit
		Intent intent = new Intent(this, ContentViewActivity.class);
		intent.putExtra(ContentViewActivity.EXTRA_TEXT, "from Notification");
		// 3建立一个任务栈,通过addparentStack把后台推栈添加到栈中,
		// 虽然添加了一个目标activity,但是并没有添加intent,用addNextIntent
		// 添加intent到栈顶
		TaskStackBuilder mTask = TaskStackBuilder.create(this);
		mTask.addParentStack(ContentViewActivity.class);
		mTask.addNextIntent(intent);
		// 4用一个PendingIntent包装Intent;
		PendingIntent mPendingIntent = mTask.getPendingIntent(0,
				PendingIntent.FLAG_UPDATE_CURRENT);

		mBuilder.setContentIntent(mPendingIntent);

		NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		nm.notify("direct_tag", R.id.direct_notification, mBuilder.build());
	}

	public void onPostInterstitial(View v) {
		// 不直接启动activity,启动activity的时候吧activity作为一个新任务放置到一个新的栈中
		// 点击返回的时候跟直接跳至桌面;跟home键的效果一样
		// 提醒框view的设置
		NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		mBuilder.setTicker("Interstitial notification");
		mBuilder.setSmallIcon(android.R.drawable.stat_notify_chat);
		mBuilder.setContentTitle("Interstitial Notification");
		mBuilder.setContentText("This will show a detial page");
		mBuilder.setAutoCancel(true);
		// 2创建一个新栈加载intent中的activity
		Intent intent = new Intent(this, InterstitialMessageActivity.class);
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
				| Intent.FLAG_ACTIVITY_CLEAR_TASK);
		// 用getActivity的方法获取PendingIntent
		PendingIntent mPendingIntent = PendingIntent.getActivity(this, 0,
				intent, 0);

		mBuilder.setContentIntent(mPendingIntent);

		NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		mNotificationManager.notify("interstitial_tag",
				R.id.interstitial_notification, mBuilder.build());
	}

	public void onPostBigView(View v) {
		//建立一个比正常大的消息提醒框正常的是64dp,大的是256dp
		NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		mBuilder.setSmallIcon(android.R.drawable.stat_notify_chat);
		mBuilder.setTicker("big notification");
		mBuilder.setContentTitle("BigView");
		mBuilder.setContentText("一个很大的消息提醒框");
		// 利用InboxStyle设置一个样式
		//添加style中的文字
		//吧样式添加到mbuilder中
		NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
		String[] events = new String[] { "first line", "second line",
				"third line", "fourth line" };
		inboxStyle.setBigContentTitle("换大的了");
		for (int i = 0; i < events.length; i++) {
			inboxStyle.addLine(events[i]);
		}
		mBuilder.setStyle(inboxStyle);
		NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		mNotificationManager.notify("big_view", R.id.interstitial_notification,
				mBuilder.build());
	}

	public void onPostProgressView(View v) {
		//创建一个带进度条的消息提醒框
		final NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		mBuilder.setSmallIcon(android.R.drawable.stat_notify_chat);
		mBuilder.setTicker("progress notification");
		mBuilder.setContentTitle("Progress");
		mBuilder.setContentText("显示进度的消息提醒框");
		//用线程加载进度
		new Thread() {
			public void run() {
				int i;
				for (i = 0; i < 100; i += 5) {
					//mBuilder添加进度条
					mBuilder.setProgress(100, i, false);
					mNotificationManager.notify(0, mBuilder.build());
					try {
						Thread.sleep(5 * 1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				//结束后调整进度条状态
				mBuilder.setContentText("Download complete")

				.setProgress(0, 0, false);
				mNotificationManager.notify(0, mBuilder.build());
			};
		}.start();
	}
	
	public void onPostMyView(View v){
		//一个自定义的消息提醒框
		NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		//用remoteViews加载自动以的布局
		RemoteViews mRemoteViews=new RemoteViews(getPackageName(), R.layout.myview);
		mBuilder.setTicker("my Notifiction");
		//经过测试发现若是没有setSmallIcon这个设置不会显示提醒框
		//原因未知
		mBuilder.setSmallIcon(android.R.drawable.stat_notify_chat);
		mBuilder.setContent(mRemoteViews);
		
		NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		mNotificationManager.notify("big_view", R.id.interstitial_notification,
				mBuilder.build());
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值