参考文章:http://blog.csdn.net/w804518214/article/details/51231946 里面还有实现音乐播放的
关于notifaction的使用例子,包含下载进度显示,普通的显示,仿QQ的弹出
关于权限:
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
代码:
public class MainActivity extends AppCompatActivity {
TextView button;
NotificationManager mange;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mange = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
button = (TextView) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showOnTop();
//showAllNotif();
//downloadNotif();
//nomaleNotif();
}
});
}
/*实现通知出现在其他应用的上方*/
public void showOnTop() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle("横幅通知");
builder.setContentText("内容");
builder.setDefaults(NotificationCompat.DEFAULT_ALL);
builder.setSmallIcon(R.mipmap.ic_launcher);//显示的小图标
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));//下拉现
//关键点
PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, new Intent(this, MainActivity.class), 0);//点击实现跳转
builder.setContentIntent(pendingIntent);
builder.setFullScreenIntent(pendingIntent, true);
builder.setAutoCancel(true);
Notification notification = builder.build();
mange.notify(6, notification);
}
/*d点击后可以查看详情*/
public void showAllNotif() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle("title");
builder.setContentText("text");
builder.setSmallIcon(R.mipmap.ic_launcher);//显示的小图标
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));//下拉现
NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle();
style.bigText("全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容全容全部的内容全部的内容全容全部的内容全部的内容全容全部的内容全部的内容全容全部的内容全部的内容全容全部的内容全部的内容全容全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容全部的内容");
style.setBigContentTitle("点击后的标题");
style.setSummaryText("类似一个标题的东西");
builder.setStyle(style);
Notification notification = builder.build();
mange.notify(3, notification);
}
/*表示下下载进度的通知*/
public void downloadNotif() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.mipmap.ic_launcher);//显示的小图标
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));//下拉现实的额大图表
//禁止用户点击数删除
builder.setAutoCancel(false);
//取消时间的显示
builder.setShowWhen(false);
//禁止滑动删除
builder.setOngoing(true);
builder.setProgress(100, 50, false);
Notification notification = builder.build();
mange.notify(1, notification);
}
/*一般的通知*/
public void nomaleNotif() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setTicker("提示");
builder.setContentTitle("标题");
builder.setSubText("摘要");
builder.setContentText("内容");
builder.setContentInfo("显示于通知时间的下面");
builder.setNumber(1);//显示同种通知的数量,塔河setContentinfo只能设置其中一种
builder.setAutoCancel(true);//可以点击通知栏的删除按钮删除
builder.setSmallIcon(R.mipmap.ic_launcher);//显示的小图标
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));//下拉现实的额大图表
PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, new Intent(this, MainActivity.class), 0);//点击实现跳转
builder.setDefaults(NotificationCompat.DEFAULT_ALL);
builder.setContentIntent(pendingIntent);
Notification notification = builder.build();
mange.notify(1, notification);
}
}