Android实现点击通知栏通知恢复前台
2016-01-06 09:58
507 查看
通过广播来实现,参考 http://www.ithtw.com/5684.html( href="http://www.ithtw.com/author/leehom" target=_blank>leehom 2015年09月15日 于 IT十万为什么 发表)
我的实现方法是不通过广播,而是通过PendingIntent实现跳转:
我的实现方法是不通过广播,而是通过PendingIntent实现跳转:
我的实现方法是不通过广播,而是通过PendingIntent实现跳转:
Intent intent = new Intent(); PendingIntent pendingIntent = null; if(BridgeUtil.isBackground(context)) { // APP在后台运行 Intent[] intents = new Intent[2]; Intent mainIntent = new Intent(MainActionContants.ACTION_MAIN_MAIN_A1.val(), null); mainIntent.addCategory(Intent.CATEGORY_DEFAULT); List<ResolveInfo> apps = context.getPackageManager().queryIntentActivities(mainIntent, 0); if(null != apps && apps.size() > 0) { intents[0] = Intent.makeRestartActivityTask(new ComponentName(context, apps.get(0).activityInfo.name)); intents[1] = new Intent(MessageActionContants.ACTION_MESSAGE_LIST_A1.val()); } pendingIntent = PendingIntent.getActivities(context, 0, intents, PendingIntent.FLAG_UPDATE_CURRENT); } else { // APP进程运行在最上层,跳转消息列表 intent = new Intent(MessageActionContants.ACTION_MESSAGE_LIST_A1.val()); pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); } Notification notification; // SDK版本大于16时才能使用Builder方法 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){ NotificationCompat.Builder builder = new Builder(context); notification = builder .setContentTitle(context.getText(R.string.app_name)) // 消息标题 .setContentText(Handler_String.isEmpty(summary) ? "" : summary) // 消息内容 .setContentIntent(pendingIntent) // 消息意图 .setSmallIcon(R.drawable.app_logo) // 消息图标(app图标) .setTicker(context.getText(R.string.app_name) + " " + (Handler_String.isEmpty(summary) ? "" : summary)) // 头部显示的内容(app名+内容) .setWhen(System.currentTimeMillis()) .setDefaults(Notification.DEFAULT_ALL) // 声音、闪光、震动 .setLights(Color.GREEN, 500, 1000) .setAutoCancel(true) .build(); notification.flags |= Notification.FLAG_SHOW_LIGHTS; } else { String content = context.getText(R.string.app_name) + " " + (Handler_String.isEmpty(summary) ? "" : summary); notification = new Notification(); notification.icon = R.drawable.app_logo; // 消息图标(app图标) notification.defaults = Notification.DEFAULT_LIGHTS; notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.when = System.currentTimeMillis(); notification.tickerText = content; // 头部显示的内容(app名+内容) notification.setLatestEventInfo(context, context.getText(R.string.app_name), content, pendingIntent); } if(null != notificationManager) { notificationManager.notify(R.drawable.app_logo, notification); }
我的实现方法是不通过广播,而是通过PendingIntent实现跳转:
相关文章推荐
- Android开发之imageView图片按比例缩放的实现方法
- Android使用Fragment打造万能页面切换框架
- Android - 使用Intent来启动Activity
- Android5.x之沉浸式状态栏
- Android开发之读写联系人
- Android 使用Parcelable传递对象
- Android开发之Button事件实现与监听方法总结
- [Android]快递查询——API的简单应用
- Android端天气查询(主要介绍如何利用API获取数据)
- Android通过Intent.ACTION_CLOSE_SYSTEM_DIALOGS监听Home按键消息
- Android 打开系统蓝牙设置
- Android属性allowBackup安全风险浅析
- android开发实例,欢迎界面,打电话,发短信
- Android自动挂断电话
- Android中使用log4j
- Android程序调试汇总
- 《Android源码设计模式解析与实战》读书笔记(十六)
- android switch之简单自定义
- Android多媒体学习九:利用MediaRecorder类实现自己的音频录制程序
- MTK Android Driver:GPIO