Notification和NotificationManager的使用(二)
来源:互联网 发布:java多线程查询数据库 编辑:程序博客网 时间:2024/06/08 18:58
前一篇中,使用Notification和NotificationManager来显示通知,
这里,是用Notification和NotificationManager BroadCast Receiver
定义一个MainActivity发出广播,定义一个MyReceiver接收广播,当接收到广播后启动另一个DisplayActivity,该类中通过Notification和NotificationManager来可视化显示广播通知
MainActivity.java
private Button btn_send;//定义Broadcast Receiver actionprivate static final String MY_ACTION="com.ex.action.MY_ACTION";@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn_send=(Button)findViewById(R.id.btnsend); btn_send.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent();intent.setAction(MY_ACTION);sendBroadcast(intent);} }); }
main.xml
<Buttonandroid:id="@+id/btnsend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发出广播" />
MyReceiver.java
package com.ex;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubIntent i = new Intent();//在新的任务中启动Activityi.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//设置Intent组件的名称i.setClass(context,DisplayActivity.class);//启动Activity显示通知context.startActivity(i);}}
DisplayActivity.java
package com.ex;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class DisplayActivity extends Activity {private Button btn_cancel;private Notification n;//声明Notificationprivate NotificationManager nm;//声明NotificationManagerprivate static final int ID=1;//Notification标识ID@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main2);//获得NotificationManager实例nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);//实例化Notification//n = new Notification();//设置显示图标,该图标会在状态栏显示int icon = R.drawable.notification;//设置显示提示信息,也会在状态栏显示String tickerText = "Text Notification";//显示时间long when = System.currentTimeMillis();/*n.icon=icon;n.tickerText=tickerText;n.when = when;*/ n = new Notification(icon,tickerText,when);//这句是设置了显示图标,提示信息,时间 Intent intent = new Intent(this,MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); n.setLatestEventInfo(this, "My Title", "My Content", pi);//设置事件信息 nm.notify(ID,n);//发出通知 btn_cancel = (Button)findViewById(R.id.btncancel); btn_cancel.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnm.cancel(ID);} }); }}
main2.xml
<Buttonandroid:id="@+id/btncancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消通知" />
AndroidManifest.xml
<activity android:name=".DisplayActivity" android:label="@string/app_name"> <intent-filter> </intent-filter> </activity> <service android:name="MYReceiver"><intent-filter> <action android:name="com.ex.action.MY_ACTION" /> </intent-filter></service>
总结:
对获得通知的过程
首先,//获得NotificationManager实例
nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
其次,对状态栏的属性设置,即发出通知的一些属性,可以有两种方式,
一种是
//实例化Notificationn = new Notification();//设置显示图标,该图标会在状态栏显示int icon = n.icon=R.drawable.notification;//设置显示提示信息,也会在状态栏显示String tickerText = "Text Notification";//显示时间long when = System.currentTimeMillis();n.icon=icon;n.tickerText=tickerText;n.when = when;
第二种是
//设置显示图标,该图标会在状态栏显示int icon =R.drawable.notification;//设置显示提示信息,也会在状态栏显示String tickerText = "Text Notification";//显示时间long when = System.currentTimeMillis(); n = new Notification(icon,tickerText,when);//这句是设置了显示图标,提示信息,时间
最后,
Intent intent = new Intent(this,MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0); n.setLatestEventInfo(this, "My Title", "My Content", pi);//设置事件信息 nm.notify(ID,n);//发出通知
- Notification和NotificationManager的使用(二)
- Notification和NotificationManager的使用(二)
- Notification和NotificationManager的使用(一)
- Notification和NotificationManager的使用
- Android NotificationManager 和Notification的使用总结(转)
- Notification和NotificationManager的使用(一)以及pendingintent详解
- NotificationManager和Notification的使用总结
- NotificationManager和Notification的使用总结
- NotificationManager和Notification的使用总结
- NotificationManager和Notification的使用总结
- android----NotificationManager和Notification的使用总结
- NotificationManager和Notification的使用总结
- Android NotificationManager 和Notification的使用总结
- NotificationManager和Notification的使用总结
- NotificationManager和Notification的使用总结
- Android NotificationManager 和Notification的使用总结
- Android NotificationManager 和Notification的使用总结
- NotificationManager和Notification的使用总结
- timeSetEvent
- 2011 Multi-University Training Contest 1 - Host by HNU&&Cat VS Dog
- VirtualBox 学习 (二) --- 虚拟存储 - 续
- C++中string相关函数 操作
- membership入门学习(三)
- Notification和NotificationManager的使用(二)
- ARM7---LCD1602---液晶显示驱动
- C++字符串函数 (转)作者:mousekitty
- abstract关键字
- MFC中 滑动条控件 Slider Control 的添加
- gdb print 输出写到文件里 --- tee 命令可以解决
- WF 中使用WorkflowApplication出错
- CentOS6修改Apache默认根目录
- 称赞大乘功德经