`

Notification 简介

 
阅读更多
public class MainActivity extends Activity {
	private Spinner spinner = null;
	private NotificationManager notificationManager = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		spinner = (Spinner) findViewById(R.id.spinner1);
		ArrayAdapter spinnerAdapter = ArrayAdapter.createFromResource(
				MainActivity.this, R.array.spinnerItems,
				android.R.layout.simple_spinner_item);
		spinnerAdapter
				.setDropDownViewResource(android.R.layout.simple_list_item_checked);
		spinner.setAdapter(spinnerAdapter);
		spinner.setSelection(1, true);
		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				if (arg0.getItemAtPosition(arg2).toString().equals("Online")) {
					showNotification("Online");
				} else {
					// showNotification("Outline");
					showDefinedNotifications();
				}

			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub

			}
		});

	}

	/**
	 * 显示系统预定义的通知栏
	 * 
	 * @param string
	 */
	private void showNotification(String string) {
		notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		Notification notification = new Notification();
		notification.when = System.currentTimeMillis();
		notification.tickerText = "show";// notification刚刚生成时弹出的提示文字
		notification.icon = R.drawable.acc_on;
		notification.flags = Notification.FLAG_AUTO_CANCEL;// 可以清除

		// notification.defaults = Notification.DEFAULT_VIBRATE;//添加震动,记得加权限
		// long[] vibrate = {0,100,200,300};
		// notification.vibrate = vibrate;

		Intent intent = new Intent(MainActivity.this, MainActivity.class);
		// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
		PendingIntent pendingIntent = PendingIntent
				.getActivity(MainActivity.this, 0, intent,
						PendingIntent.FLAG_UPDATE_CURRENT);

		notification.setLatestEventInfo(MainActivity.this, "Notification_test",
				string, pendingIntent);
		notificationManager.notify(1, notification);

	}

	/**
	 * 显示自定义的通知栏
	 * 使用自定义的点击通知后才会消失。
	 */
	private void showDefinedNotifications() {
		notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		Notification notification = new Notification(R.drawable.acc_on, "有提示!",
				System.currentTimeMillis());
		Intent intent = new Intent(MainActivity.this, MainActivity.class);
		notification.flags = Notification.FLAG_AUTO_CANCEL;
		PendingIntent pendingIntent = PendingIntent
				.getActivity(MainActivity.this, 0, intent,
						PendingIntent.FLAG_UPDATE_CURRENT);
		RemoteViews remoteViews = new RemoteViews(getPackageName(),
				R.layout.notification_items);
		remoteViews.setImageViewResource(R.id.imageView1, R.drawable.ic_launcher);
		remoteViews.setTextViewText(R.id.tx_content, "我是自定义的Notification");
		notification.contentView = remoteViews;
		notification.contentIntent = pendingIntent;
		notificationManager.notify(1, notification);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub

		super.onResume();
	}
}

自定义的R.layout.notification_items:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

  
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/tx_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />

    </LinearLayout>

</LinearLayout>

 自定义数组array.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="spinnerItems">
      <item>Online</item>
      <item>Outline</item>
    </string-array>
    
</resources>

 结构图:

 

  • 大小: 13.2 KB
分享到:
评论

相关推荐

    Laravel开发-notification

    ### 一、Notification简介 Laravel的通知系统是一个强大的工具,它提供了结构化的接口,可以定义多种通知方式,如邮件、数据库、队列等。在"会议结束后,我们将向您发送数字通知"的场景中,Notification组件可以...

    Apple Push Notification Service简介

    ### Apple Push Notification Service (APNS) 简介 #### 一、APNS 概述 Apple Push Notification Service(简称 APNS)是苹果公司提供的一种推送通知服务,它允许开发者向用户设备上的应用发送实时更新的信息。...

    HTML5 Notification(桌面提醒)功能使用实例

    一、HTML5 Notification 简介HTML5 Notification ,即桌面通知。目前浏览器依然是一个严格的沙盒工作模式,这种模式把浏览器和桌面的通信隔离开。Notification可以跨越沙盒能够让浏览器即使是最小化状态也能将消息...

    安卓Android源码——NotificationTest 消息推送的简单demo.zip

    1. **Notification简介** Android的通知(Notification)是一种非侵入性的用户界面元素,可以在状态栏显示,即使应用不在前台运行也能向用户传达信息。通知通常包括标题、内容、图标以及可选的操作按钮,用户可以...

    Android高级编程.pdf

    8.4 Notification简介 8.4.1 Notification Manager简介 8.4.2 创建Notification 8.4.3 触发Notification 8.4.4 向Earthquake Monitor中添加Notiflcation 8.4.5 高级Notification技术 8.4.6 持续的和连续的...

    Android高级编程--源代码

    8.4 Notification简介 266 8.4.1 Notification Manager简介 267 8.4.2 创建Notification 267 8.4.3 触发Notification 268 8.4.4 向Earthquake Monitor中添加Notification 268 8.4.5 高级Notification技术 271 ...

    安卓消息推送通知栏相关-Eclipse的关于通知notification的小应用源码有注释供参考.rar

    1. **Notification API简介** Android的通知机制是通过Notification类来实现的,它允许开发者在系统通知栏创建和管理通知。开发者需要构建一个Notification对象,并设置相应的属性,如图标、标题、文本等,然后通过...

    mms notification pdu 解析

    #### 彩信通知PDU简介 彩信通知PDU是一种特殊的指示消息,由彩信中心向手机发起的通知指示消息(m-notification-ind),通常通过短信下发的方式进行传递(即WAP over SMS方式)。这意味着下发的短信并非普通的文字...

    Phonegap-LocalNotification-master

    #### 一、简介 `Phonegap-LocalNotification-master` 是一个针对 PhoneGap 应用程序的本地通知插件。PhoneGap(现更名为 Apache Cordova)是一个允许开发者使用 HTML、CSS 和 JavaScript 开发跨平台移动应用程序的...

    前端项目-jquery.notification.zip

    **jQuery Notification 插件简介** jQuery Notification 是一个轻量级的插件,它利用了 WebKit 浏览器的 Notification API 来创建桌面级别的弹出通知。WebKit 是一个开源的浏览器渲染引擎,被广泛应用于 Chrome 和 ...

    Android中AlarmManager+Notification实现定时通知提醒功能

    AlarmManager简介 AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver)。本文将讲解一下如何使用...

    Laravel开发-laravel-push-notification

    2. **Push Notifications 简介**: 推送通知允许应用程序在不打开的情况下向用户发送消息,通常显示在用户的设备通知栏上。这对于提醒用户新的消息、活动或促销信息非常有用。对于Android和iOS设备,推送通知分别...

    Android Push Notification客户端源码包

    1. **XMPP协议简介** - XMPP基于XML,提供了基于流的通信方式,支持双向通信。 - 它的核心组件包括Jabber服务器、客户端和代理,通过TCP连接进行数据传输。 - 在Android平台上,通常使用Smack或XMPPTCPConnection...

    Android开发之Notification手机状态栏通知用法实例分析

    一、Notification手机状态栏通知简介 Notification手机状态栏通知是显示在手机状态栏的通知,通常位于手机屏幕的顶部,显示时间、信号强度、电池电量等信息。Notification手机状态栏通知可以显示各种信息,如新消息...

    荷兰Covid19 Notification App的Android来源-Android开发

    荷兰Covid19 Notification App的Android来源Covid19 Notification App-Android简介此存储库包含荷兰暴露通知应用程序概念验证的Android应用程序。 我们会在早期提供此代码,以便每个人在开发应用程序时都可以跟进,...

    matlab开发-使用sm和mailnotification创建Google日历事件

    8. **文档和许可证**:`README.txt`通常包含项目简介、使用指南或者注意事项;`license.txt`则包含了项目的许可协议,决定用户如何使用和分发代码;`doc`文件夹可能包含了更详细的API文档或其他帮助材料。 9. **...

    nodejs-push-notification-server:一个使用 nodejs 构建的简单推送通知服务器

    **二、Socket.IO简介** Socket.IO是一个实时应用框架,它在WebSockets之上提供了一层抽象,解决了WebSockets的一些兼容性和可靠性问题。Socket.IO支持多种传输机制,如WebSocket、Long-Polling等,确保在各种网络...

    easy-notification:[只读]客户端,用于在EonX上发送通知

    --- eonx_docs ---标题:简介权重:0 --- eonx_docs --- 制作此软件包的目的在于简化EonX Notification Service中的通知分发,并且仅与此服务一起使用。 需要包(作曲家) 建议安装此软件包的方法是使用 : $ ...

Global site tag (gtag.js) - Google Analytics