Notification用法
来源:互联网 发布:好玩的桌面软件 编辑:程序博客网 时间:2024/06/07 00:08
本文介绍了Notification的用法。
1、示例演示用法
1)NotificationActivity.java
/** * 演示了Notification的用法 * Notification的创建、显示、删除 * 通知栏点击Notification打开Activity、Service、Broadcast * 直接new一个Notification或通过Notification.Builder来创建 * 自定义Notification的视图并点击交互 */public class NotificationActivity extends Activity {private BroadcastReceiver mBroadcastReceiver;private NotificationManager mNotificationManager;private int NOTIFICATION_ID = 0x007;private int NOTIFICATION_ID2 = 0x008;private int NOTIFICATION_ID3 = 0x009;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init(){IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(NewBroadcastReceiver.ACTION_NOTIFICATION);intentFilter.addAction(NewBroadcastReceiver.ACTION_NOTIFICATION2);mBroadcastReceiver = new NewBroadcastReceiver();registerReceiver(mBroadcastReceiver, intentFilter);mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);findViewById(R.id.btn).setOnClickListener(mOnClickListener);findViewById(R.id.btn_direct).setOnClickListener(mOnClickListener);findViewById(R.id.btn_custom).setOnClickListener(mOnClickListener);//API level 11Notification.Builder builder = new Notification.Builder(this);builder.setSmallIcon(R.drawable.ic_launcher)//status bar.setTicker("猥琐不")//status bar.setWhen(System.currentTimeMillis())//the time the event occurred.setDefaults(Notification.DEFAULT_SOUND).setContentTitle("石鑫").setContentText("小李飞刀").setContentInfo("美好的回忆").setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, NewActivity.class), 0))//startActivity//.setContentIntent(PendingIntent.getBroadcast(this, 0, //new Intent(NewBroadcastReceiver.ACTION_NOTIFICATION), 0))//sendBroadcastReceiver//.setContentIntent(PendingIntent.getService(this, 0, //new Intent(this, NewService.class), 0))//startService.setAutoCancel(true);//dismiss when touchedNotification notification = builder.getNotification();//v16用buildmNotificationManager.notify(NOTIFICATION_ID, notification);}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(mBroadcastReceiver);}private OnClickListener mOnClickListener = new OnClickListener() {@SuppressWarnings("deprecation")@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn:mNotificationManager.cancel(NOTIFICATION_ID);//通过ID删除NotificationmNotificationManager.cancel(NOTIFICATION_ID2);mNotificationManager.cancel(NOTIFICATION_ID3);break;case R.id.btn_direct:Notification notification = new Notification(R.drawable.ic_launcher, "monkey", System.currentTimeMillis());//给Notification添加soundUri ringURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);notification.sound = ringURI;//给Notification添加Vibrationlong[] vibrate = new long[]{1000,1000,1000,1000,1000};notification.vibrate = vibrate;notification.setLatestEventInfo(NotificationActivity.this, "Activity", "launch an activity", PendingIntent.getActivity(NotificationActivity.this, 0, new Intent(NotificationActivity.this, NewActivity.class), 0));mNotificationManager.notify(NOTIFICATION_ID2, notification);break;case R.id.btn_custom:Notification notification2 = new Notification(R.drawable.ic_launcher, "monkey", System.currentTimeMillis());RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.notification);notification2.contentView = remoteView;notification2.contentIntent = PendingIntent.getActivity(NotificationActivity.this, 0, new Intent(NotificationActivity.this, NewActivity.class), 0);notification2.contentView.setTextViewText(R.id.txt, "骚包");notification2.contentView.setProgressBar(R.id.progressbar, 1000, 400, false);//注册及在广播中处理点击事件notification2.contentView.setOnClickPendingIntent(R.id.img, PendingIntent.getBroadcast(NotificationActivity.this, 0, new Intent(NewBroadcastReceiver.ACTION_NOTIFICATION2), 0));mNotificationManager.notify(NOTIFICATION_ID3, notification2);default:break;}}};}2)activity_main.xml
<?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" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hit me" android:layout_gravity="center"/> <Button android:id="@+id/btn_direct" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="direct" android:layout_gravity="center"/> <Button android:id="@+id/btn_custom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="custom" android:layout_gravity="center"/></LinearLayout>3)NewActivity.java
public class NewActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {Log.i(getClass().getSimpleName(), "onCreate");super.onCreate(savedInstanceState);setContentView(R.layout.activity_new);}}4)activity_new.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="欢迎步入星光大道"/></RelativeLayout>5)NewBroadcastReceiver.java
public class NewBroadcastReceiver extends BroadcastReceiver {/**使用4次,定义、注册、发送、接收*/public static final String ACTION_NOTIFICATION = "action.NOTIFICATION";public static final String ACTION_NOTIFICATION2 = "action.NOTIFICATION2";@Overridepublic void onReceive(Context context, Intent intent) {if(ACTION_NOTIFICATION.equals(intent.getAction())){Log.i(getClass().getSimpleName(), "onReceive");}else if(ACTION_NOTIFICATION2.equals(intent.getAction())){Toast.makeText(context, "轻点好吗", Toast.LENGTH_SHORT).show();}}}6)NewService.java
public class NewService extends Service {@Overridepublic IBinder onBind(Intent intent) {//只有Service.onBind(Intent)覆写return null;}@Overridepublic void onCreate() {Log.i(getClass().getSimpleName(), "onCreate");super.onCreate();}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {Log.i(getClass().getSimpleName(), "onStartCommand");return super.onStartCommand(intent, flags, startId);}}7)notification.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentTop="true"/> <ProgressBar android:id="@+id/progressbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/img" android:layout_alignParentBottom="true" style="@android:style/Widget.ProgressBar.Horizontal"/></RelativeLayout>8)AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.qinuli.notificationtest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.VIBRATE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.qinuli.notificationtest.NotificationActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NewActivity"></activity> <service android:name=".NewService"/> </application></manifest>
0 0
- Notification用法
- Notification 用法
- notification新旧用法 notification builder
- notification新旧用法 notification builder
- Notification 的用法
- Notification 的用法
- Android Notification 用法
- Notification详细用法
- android notification 的用法
- android notification的用法
- Notification的用法
- Notification的用法
- Notification的用法
- Notification的用法
- Notification新旧用法
- Notification的简单用法
- Android Notification用法
- html5 Notification 用法
- Fireworks in Montreal
- 不注册直接使用COM组件的方法
- 杭电2014评分数组快排法和基本法
- [LeetCode]9.Palindrome Number
- javascript深入理解js闭包
- Notification用法
- If not, then the process of what would be my future
- JavaEE----Action接受请求参数
- Apache Pig入门学习文档(一)
- keytool命令总结
- Spring is infinitely good, but hard to find clear Huan
- 一次性退出所有avtivity
- 淘宝拍拍装修技巧
- 怎么把一副图片用PS调成简笔画?