Notification是顯示在手機狀態欄的通知,它表明一種具備全局效果的通知,程序通常經過NotificationManager服務來發送Notification。
在小米手機上,手指在屏幕頂端向下劃,能夠看到這個通知內容。java
package allegro.notificationtest;
import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { static final int NOTIFICATION_ID = 0x123; NotificationManager nm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nm=(NotificationManager) getSystemService(NOTIFICATION_SERVICE); } public void send(View source) { Intent intent=new Intent(MainActivity.this,OtherActivity.class); PendingIntent pi= PendingIntent.getActivity(MainActivity.this,0,intent,0); Notification notify = new Notification.Builder(this) .setAutoCancel(true) // 設置顯示在狀態欄的通知提示信息 .setTicker("有新消息") // 設置通知的圖標 .setSmallIcon((R.drawable.java)) // 設置通知內容的標題 .setContentTitle("一條新通知") // 設置通知內容 .setContentText("恭喜你,你中獎了!") // 設置使用系統默認的聲音、默認LED燈 // .setDefaults(Notification.DEFAULT_SOUND // |Notification.DEFAULT_LIGHTS) // 設置通知的自定義聲音 // .setSound(Uri.parse("android.resource://org.crazyit.ui/" // + R.raw.msg)) .setWhen(System.currentTimeMillis()) // 設改通知將要啓動程序的Intent .setContentIntent(pi) //設置事件信息,這裏啓動intent對應的程序。
.build(); nm.notify(NOTIFICATION_ID,notify); } public void del(View v) { nm.cancel(NOTIFICATION_ID); } }
點擊發送按鈕後,劃開通知欄點擊通知,執行啓動OtherActivity程序android
另外,AndroidManifest.xml文件中聲明權限。由於程序要訪問閃光燈,振動器。app
<!-- 添加操做閃光燈的權限 --> <uses-permission android:name="android.permission.FLASHLIGHT"/> <!-- 添加操做振動器的權限 --> <uses-permission android:name="android.permission.VIBRATE"/>