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>
结构图:
相关推荐
### 一、Notification简介 Laravel的通知系统是一个强大的工具,它提供了结构化的接口,可以定义多种通知方式,如邮件、数据库、队列等。在"会议结束后,我们将向您发送数字通知"的场景中,Notification组件可以...
### Apple Push Notification Service (APNS) 简介 #### 一、APNS 概述 Apple Push Notification Service(简称 APNS)是苹果公司提供的一种推送通知服务,它允许开发者向用户设备上的应用发送实时更新的信息。...
一、HTML5 Notification 简介HTML5 Notification ,即桌面通知。目前浏览器依然是一个严格的沙盒工作模式,这种模式把浏览器和桌面的通信隔离开。Notification可以跨越沙盒能够让浏览器即使是最小化状态也能将消息...
1. **Notification简介** Android的通知(Notification)是一种非侵入性的用户界面元素,可以在状态栏显示,即使应用不在前台运行也能向用户传达信息。通知通常包括标题、内容、图标以及可选的操作按钮,用户可以...
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 持续的和连续的...
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 ...
1. **Notification API简介** Android的通知机制是通过Notification类来实现的,它允许开发者在系统通知栏创建和管理通知。开发者需要构建一个Notification对象,并设置相应的属性,如图标、标题、文本等,然后通过...
#### 彩信通知PDU简介 彩信通知PDU是一种特殊的指示消息,由彩信中心向手机发起的通知指示消息(m-notification-ind),通常通过短信下发的方式进行传递(即WAP over SMS方式)。这意味着下发的短信并非普通的文字...
#### 一、简介 `Phonegap-LocalNotification-master` 是一个针对 PhoneGap 应用程序的本地通知插件。PhoneGap(现更名为 Apache Cordova)是一个允许开发者使用 HTML、CSS 和 JavaScript 开发跨平台移动应用程序的...
**jQuery Notification 插件简介** jQuery Notification 是一个轻量级的插件,它利用了 WebKit 浏览器的 Notification API 来创建桌面级别的弹出通知。WebKit 是一个开源的浏览器渲染引擎,被广泛应用于 Chrome 和 ...
AlarmManager简介 AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver)。本文将讲解一下如何使用...
2. **Push Notifications 简介**: 推送通知允许应用程序在不打开的情况下向用户发送消息,通常显示在用户的设备通知栏上。这对于提醒用户新的消息、活动或促销信息非常有用。对于Android和iOS设备,推送通知分别...
1. **XMPP协议简介** - XMPP基于XML,提供了基于流的通信方式,支持双向通信。 - 它的核心组件包括Jabber服务器、客户端和代理,通过TCP连接进行数据传输。 - 在Android平台上,通常使用Smack或XMPPTCPConnection...
一、Notification手机状态栏通知简介 Notification手机状态栏通知是显示在手机状态栏的通知,通常位于手机屏幕的顶部,显示时间、信号强度、电池电量等信息。Notification手机状态栏通知可以显示各种信息,如新消息...
荷兰Covid19 Notification App的Android来源Covid19 Notification App-Android简介此存储库包含荷兰暴露通知应用程序概念验证的Android应用程序。 我们会在早期提供此代码,以便每个人在开发应用程序时都可以跟进,...
8. **文档和许可证**:`README.txt`通常包含项目简介、使用指南或者注意事项;`license.txt`则包含了项目的许可协议,决定用户如何使用和分发代码;`doc`文件夹可能包含了更详细的API文档或其他帮助材料。 9. **...
**二、Socket.IO简介** Socket.IO是一个实时应用框架,它在WebSockets之上提供了一层抽象,解决了WebSockets的一些兼容性和可靠性问题。Socket.IO支持多种传输机制,如WebSocket、Long-Polling等,确保在各种网络...
--- eonx_docs ---标题:简介权重:0 --- eonx_docs --- 制作此软件包的目的在于简化EonX Notification Service中的通知分发,并且仅与此服务一起使用。 需要包(作曲家) 建议安装此软件包的方法是使用 : $ ...