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

通过广播来实现,参考 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值