2017-05-29 21 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

非常歡迎你:) –

相關問題