该程序主要实现了应用推送通知,将信息显示到通知栏。并实现了通知的几种方式。例如手机震动提醒、LED灯闪烁提醒以及通知的重要的程度等。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button sendNotice = (Button) findViewById(R.id.sendNotice); sendNotice.setOnClickListener(this); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void onClick(View v) { switch (v.getId()) { case R.id.sendNotice: Intent intent = new Intent(this,NotificationActivity.class);//创建视图 PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);//获得PendingIntent 对象 NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new NotificationCompat.Builder(this) .setContentTitle("This is content title") .setContentText("This is content text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.drawable.big_image) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.big_image)) .setContentIntent(pi)//传入PendingIntent对象 // .setAutoCancel(true)//第一种写法:当点击了这个通知的时候,通知会自动取消 // .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/luna.ogg")))//允许播放音频 .setVibrate(new long[] {0,1000,1000,1000})//手机震动一秒,然后禁止一秒 .setLights(Color.GREEN,1000,1000)//实现LED灯一绿色灯光一闪一闪的效果 // .setDefaults(NotificationCompat.DEFAULT_ALL)//使用通知默认效果 /* .setStyle(new NotificationCompat.BigTextStyle().bigText("大家好大家好大家好大家好大家好大家好大家好大家好大家好大" + "家好大家好学习安卓,安卓入门与精通"))//显示所有的文字内容*/ // .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big_image))) .setPriority(NotificationCompat.PRIORITY_MAX)//通知重要程度 MAX表示最高的重要程度 .build();//显示一张大图片 manager.notify(1, notification); break; default: break; } }}
package com.example.administrator.notifationmanager; import android.app.NotificationManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class NotificationActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notification); NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); manager.cancel(1);//第二种写法:当点击了这个通知的时候,通知会自动取消 } }