您的位置:首页 > 移动开发 > Android开发

android之Notification版本兼容性问题

2013-08-22 17:26 337 查看
首先先来创建一个notification提示
//概要
String tickerText = context.getResources().getText(R.string.app_name).toString()+"发现新版本,建议您更新!";
//标题
String title = context.getResources().getText(R.string.app_name).toString()+"更新";
//内容
String content= "点击更新"+context.getResources().getText(R.string.app_name).toString();
//logo
int icon = R.drawable.logo;
Notification notification = new Notification(icon, tickerText, System.currentTimeMillis());
//打开一个service意图
Intent updateinte = new Intent(context,UpdateService.class);
//包装service意图
PendingIntent pendingIntent = PendingIntent.getService(context, 0, updateinte, 0);
notification.setLatestEventInfo(context, title, content, pendingIntent);
notification.defaults = Notification.DEFAULT_SOUND;
notification.flags = Notification.FLAG_AUTO_CANCEL;
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(101, notification);

接下来的更新notification中,在4.0版本以后我们只需这样即可

notification.setLatestEventInfo(context,"正在下载"+appName,"0%", null);
//id相同为101表示更新提示
manager.notify(101, notification);
但是放到2.x版本中运行的时候就报错提示我们require contentIntent,所以我们需要不能将PendingIntent设置为null;需要设置一个空的intent给PendingIntent包装,再将PendingIntent设置给notification;

Intent nullIntent = new Intent();
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, nullIntent, 0);
// 下载失败
notification.setLatestEventInfo(context,"正在下载"+appName,"0%", pendingIntent);
manager.notify(101, notification);
这样就可以搞定,Notification的详细应用可以查看我的博客http://blog.csdn.net/caicongyang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: