用户手动杀死进程通知栏不消失解决方案

原创 2015年11月20日 11:53:20

我们都知道当应用被干掉的时候是不会收到任何通知的也不会回调onDestory()啥啥的,当你的应用被kill了这时候你的通知已经显示在通知栏了,so你应用都不存在了还显示在上面一定是不正确的,所以google了半天没啥结果,最有无奈请教国外大牛的吧,如何请教你懂的(英文关键字How to remove all notifications when an android app (activity or service) is killed),最终找到bind服务的方式解决问题。


具体代码如下:


1、manifest注册服务:<service android:name=".KillNotificationsService"></service>

2、Activity onCreat()中   bindService(new Intent(CheckUpdateActivity.this, KillNotificationsService.class), mConnection, Context.BIND_AUTO_CREATE);

3、Activity onDestory()   unbindService(mConnection);


  private ServiceConnection mConnection = new ServiceConnection() {
        public void onServiceConnected(ComponentName className, IBinder binder) {
            ((KillBinder) binder).service.startService(new Intent(CheckUpdateActivity.this, KillNotificationsService.class));
        }


        public void onServiceDisconnected(ComponentName className) {
        }
 };


public class KillNotificationsService extends Service {


    public class KillBinder extends Binder {
        public final Service service;


        public KillBinder(Service service) {
            this.service = service;
        }


    }


    private final IBinder mBinder = new KillBinder(this);


    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return Service.START_STICKY;
    }


    @Override
    public void onCreate() {
    }
    
    @Override
    public void onTaskRemoved(Intent rootIntent) {
        NotificationHelper.cancelNotification();
    }
}


Android Notification PendingIntent:当前App被kill 掉之后,当前App发送的Notification消息是否会被自动清除掉 ?

问题:  之前大家有一个争论 “当前App被kill 掉之后,当前App发送的Notification消息是否会被自动清除掉 ?”Google 为什么要设计 PendingIntent 这样...
  • wangbaochu
  • wangbaochu
  • 2016年01月28日 12:16
  • 2542

应用保活--杀死进程也能收到推送消息

我选取的是极光推送,当把进程杀死时候就接受不到推送过来的消息。这是因为我使用的是小米手机,小米和华为手机属于那种深度定制安卓系统,需要用户的操作才能够实现应用“保活”的目的。 小米【MIUI】 自启...
  • jhl122
  • jhl122
  • 2016年12月02日 13:11
  • 7624

关于iOS 9之前的本地推送,本地推送杀掉进程后到底能不能收到?

昨天下午去面试 面试官:“本地推送,在杀掉进程以后还可以收到吗?” 我(非常肯定的):“可以的” 面试官:“并不能,不信你回去写个demo吧” 我:“我写过本地推送,确实是可以的啊” 面试官...
  • u013679882
  • u013679882
  • 2016年11月29日 11:49
  • 2094

Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案

因为项目用到推送功能,所以需求是知道用户是否开启了通知栏的权限,并且提供滑动按钮进行跳转以便用户进行关闭或者开启。 1.获取通知栏权限是否开启: /** * 获取通知栏权限是否开启 * */...
  • YLx_SHEEP
  • YLx_SHEEP
  • 2017年05月19日 17:20
  • 2027

Swift 解决进入程序后通知栏内的消息提醒不消失的问题

博主在用swift做一个备忘录APP的过程中遇到一个问题,我为需要提醒的事项设置了localNotification,可以正常实现系统提醒功能,但是如果不点击提醒,而是直接进入程序,那么这个提醒条目将...
  • Kevin_Dengzx_csdn
  • Kevin_Dengzx_csdn
  • 2015年05月27日 20:56
  • 1027

MFC Cdockablepane AttachToTabWnd 选项卡 拖拽 点击 双击 标签栏 子停靠面板消失问题解决方案

具体的MFC停靠面板的布局问题在这里我就不说了,网上已经有比较成熟的教程,大神也给出了详细可靠的教程,链接如下: http://blog.csdn.net/chenlycly/article/det...
  • u011450490
  • u011450490
  • 2016年10月10日 20:21
  • 1344

SQLserver 用户进程堵塞解决方案;

USE [master]   GO /****** Object:  StoredProcedure [dbo].[kill_bak2]    Script Date: 08/07/2015 15...
  • cairiyingcan
  • cairiyingcan
  • 2015年08月07日 15:42
  • 88

使用NotifyIcon类在通知栏创建进程的快捷图标

示例代码 using System; using System.Drawing; using System.Linq; using System.Windows.Forms; namespa...
  • tiana0
  • tiana0
  • 2014年03月22日 22:34
  • 2533

APP双进程伪守护,外部通知栏点击回到带数据的APP画面

1 双进程伪守护的原理  开启2个服务分别在不同的进程里面,根据AIDL进行进程之间通信 本地服务跟远程服务互相绑定,当本地服务开启成功,开启远程服务,然后跟远程服务绑定。反之 当其中一个进程出现异常...
  • qq_31552599
  • qq_31552599
  • 2016年09月21日 15:22
  • 571

步步为营_Android开发课[21]_用户界面之Notification(通知栏)

Focus on technology, enjoy life!—— QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/det...
  • y18334702058
  • y18334702058
  • 2015年04月11日 22:08
  • 541
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用户手动杀死进程通知栏不消失解决方案
举报原因:
原因补充:

(最多只允许输入30个字)