Android实现点击通知栏通知恢复前台

来源:互联网 发布:photoshop 软件下载 编辑:程序博客网 时间:2024/06/07 21:10

通过广播来实现,参考 http://www.ithtw.com/5684.html(leehom 2015年09月15日 于 IT十万为什么 发表



我的实现方法是不通过广播,而是通过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实现跳转:
0 0
原创粉丝点击