2017-05-29 54 views
0

即使强制关闭我的应用程序,我的通知也不会消失。即,当我打开多任务窗口并将其刷掉时,我的持续通知不会消失。即使我强制关闭我的应用程序,我的通知也不会消失

这是我的通知填入方法:

public void populateNotification(Boolean bool) { 
    int notifyID = 1; 
    notificationBuilder = new NotificationCompat.Builder(MainActivity.this); 
    notificationBuilder.setSmallIcon(R.mipmap.ic_launcher_round); 
    notificationBuilder.setContentText("Set Content Text"); 
    notificationBuilder.setContentTitle("Set Content Title"); 
    notificationManager = (NotificationManager) getBaseContext().getApplicationContext().getSystemService(NOTIFICATION_SERVICE); 
    if (bool) { 
     notificationManager.notify(notifyID, notificationBuilder.build()); 
    } else { 
     notificationManager.cancel(notifyID); 
    } 

这是我的onDestroy方法:

` 
public void onDestroy() { 
     if (cameraAPIself != null) { 
      cameraAPIself.destroyCamera(); 
     } 
     if (cameraAPI2self != null) { 
      cameraAPI2self.destroyCamera(); 
     } 
     populateNotification(false); 
     super.onDestroy(); 
    }` 

基本上,我的应用程序所做的就是显示通知时,闪光灯亮。但是,当我强制关闭我的应用程序ie。当闪光灯开启(当通知被填充时),通知不会消失,因为不需要通知,因为应用程序不再活动。任何人都可以在此指导我。

回答

0

调用onDestroy()并不总是工作。

onDestroy不保证始终被调用(请参阅here)。

(“杀死,如果具有较高优先级的应用程序需要内存应用程序”)

此外,在Activity Lifecycle文档不得不说这约的onDestroy方法:

在有些情况下系统将简单地杀死活动的 托管过程,而不调用此方法(或任何其他方法),因此 不应该用于在过程消失后执行旨在保持在 左右的操作。

使用服务

所以你可以做的是,创建一个服务(不),在服务你重写onTaskRemoved()方法,在你打电话取消这个方法你通知。

这是文档指出怎么样onTaskRemoved - 如果服务正在运行,并且用户有 删除了来自该服务的应用程序任务

这就是所谓的。

+0

非常感谢很多人,作品像一个魅力:) –

+0

非常欢迎你:) –

相关问题