一、在AndroidManifest.xml中添加权限
<uses-permission android:name="android.permission.VIBRATE" />
二、创建活动NotificationsActivity
视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <Button android:id="@+id/btn_displaynotif" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Display Notification" android:onClick="onClick" /> </LinearLayout>
代码
package com.example.androidtest; 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; public class NotificationsActivity extends Activity { int notificationID = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notifications); } public void onClick(View view) { displayNotification(); } protected void displayNotification() { //当用户从通知列表中选择了一个通知时,这个意图将被用来启动NofificationView活动。 Intent i = new Intent(this, NotificationView.class); i.putExtra("notificationID", notificationID); //PendingIntent对象可以代表应用程序帮助您在后面某个时候执行一个动作,而不用考虑应用程序是否正在运行。 PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, 0); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notif = new Notification( R.drawable.ic_launcher, "Reminder: Meeting starts in 5 minutes",//顶部滚动信息 System.currentTimeMillis()); //正文 CharSequence from = "System Alarm"; CharSequence message = "Meeting with customer at 3pm..."; notif.setLatestEventInfo(this, from, message, pendingIntent); //100毫秒后开始振动,振动250毫秒后停止,再过100毫秒后再次振动500毫秒 notif.vibrate = new long[] {100, 250, 100, 500}; nm.notify(notificationID, notif); } }
三、创建活动NotificationView
视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Here are the details for the notification..." /> </LinearLayout>
代码
package com.example.androidtest; import android.app.Activity; import android.app.NotificationManager; import android.os.Bundle; /** * 用户点击通知后,此活动被启动。 */ public class NotificationView extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notification_view); //清除通知。 NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.cancel(getIntent().getExtras().getInt("notificationID")); } }
运行效果