博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序
阅读量:6456 次
发布时间:2019-06-23

本文共 1308 字,大约阅读时间需要 4 分钟。

android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

 
 

在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity,

结果总是存在好几个同样的activity,就算要返回的activity正在前台,点击消息后也会重新打开一个一样的activity,返回好几次才能退出,

而不能像qq之类的点击通知栏消息回到之前存在的activity,如果存在就不再新建一个activity

说的有点绕,如果是遇到此类问题的肯定能懂,没遇到过的估计看不懂我这混乱的表达了.....

经过查阅资料,通过如下方式解决了,

其实主要功劳就是第10行,

public void shownotification(String msg)    {        NotificationManager barmanager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);        Notification notice = new Notification(android.R.drawable.stat_notify_chat,"服务器发来信息了",System.currentTimeMillis());        notice.flags=Notification.FLAG_AUTO_CANCEL;        Intent appIntent = new Intent(Intent.ACTION_MAIN);        //appIntent.setAction(Intent.ACTION_MAIN);        appIntent.addCategory(Intent.CATEGORY_LAUNCHER);        appIntent.setComponent(new ComponentName(this.getPackageName(), this.getPackageName() + "." + this.getLocalClassName()));         appIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);//关键的一步,设置启动模式         PendingIntent contentIntent =PendingIntent.getActivity(this, 0,appIntent,0);        notice.setLatestEventInfo(this,"通知","信息:"+msg, contentIntent);        barmanager.notify(STATUS_BAR_ID,notice);           }

转载于:https://www.cnblogs.com/yaya-Android/p/4098960.html

你可能感兴趣的文章
MyBatis+Spring结合
查看>>
Office 365之SkyDrive Pro
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
Scala之柯里化和隐式转换
查看>>
获取androdmanifest里面的meta-data
查看>>
mysql拷贝表的几种方式
查看>>
用设计模式去掉没必要的状态变量 —— 状态模式
查看>>
linux安装elasticsearch及遇到的各种问题
查看>>
健忘的正则
查看>>
[转]CMake快速入门教程:实战
查看>>
IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
查看>>
Markdown用法
查看>>
求最大值及其下标
查看>>
轮播插件swiper.js?
查看>>
网路流24题总结
查看>>
15 个 Android 通用流行框架大全
查看>>
IE8兼容@media和mp4视频的解决方案
查看>>
第二周总结
查看>>