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

原创 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();
    }
}


相关文章推荐

第三方推送过来的消息,用户点击如何处理

第三方推送过来的消息,用户点击如何处理第三方推送过来的消息,用户点击通知栏一点点小想法,如果有不对的地方,欢迎指正: 需求: 用户点击通知栏跳转到指定页面。 场景一 : 这个时候又分两种情况,一种是a...

ios CRC16校验(两种)

做项目中与硬件进行通心用到的crc16验证方法,总共分为两种,大家可以看看...

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

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

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

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

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

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

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

USE [master]   GO /****** Object:  StoredProcedure [dbo].[kill_bak2]    Script Date: 08/07/2015 15...

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

Focus on technology, enjoy life!—— QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/det...

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

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

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

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

Notification -- 一点击通知栏的通知,该通知就消失

实现在开机后收到如图所示的通知,并且在下拉通知栏中,一点击“the notification”通知,该通知就消失。   通过自定义一个BroadcastReceiver,来接收广播"android...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用户手动杀死进程通知栏不消失解决方案
举报原因:
原因补充:

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