2015-04-01 102 views
7

我有一個名爲A的活動,從broadcast receiver開始。活動A觸發了通知,但當活動銷燬(完成)時它會自動消失。但我想保留此通知,直到用戶單擊或手動清除通知。活動完成後通知消失

如何從廣播接收器活動開始

Intent i = new Intent(context,A.class); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
i.putExtras(intent.getExtras()); 
context.startActivity(i); 

通知

Intent notificationIntent = new Intent(); 
notificationIntent.setClass(context,B.class); 
notificationIntent.setAction(Intent.ACTION_MAIN); 
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 
Notification notification = new NotificationCompat.Builder(context) 
     .setSmallIcon(R.drawable.notification_small) 
     .setContentTitle(status) 
     .setTicker(status) 
     .setAutoCancel(false) 
     .setContentText(message) 
     .setDefaults(Notification.DEFAULT_SOUND) 
     .setLargeIcon(
       Bitmap.createScaledBitmap(icon, 128, 128, false)) 
     .setContentIntent(pendingIntent) 
     .build(); 

清單選項

<activity android:name="com.example.activity.A" 
android:screenOrientation="portrait" 
android:launchMode="singleTask" 
android:taskAffinity="" 
android:excludeFromRecents="true"/> 

注:我也試過singleInstance,但沒有運氣。

編輯(固定)

我犯了一個愚蠢的錯誤。我調用clearAll()而不是取消onDestroy()函數中的特定通知。

+1

您是否使用mNotificationManager.cancel(NOTIFICATION_ID)取消通知? – Fahim 2015-04-01 07:57:46

+0

看到我在我的評論中提到您正在清除通知 – Fahim 2015-04-01 09:02:11

回答

1

刪除autocancel()完全和嘗試這個,

public static final int NOTIFICATION_ID = 1; 
    private NotificationManager mNotificationManager; 
    NotificationCompat.Builder builder; 


    mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,new Intent(this, MenuActivity.class), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT); 

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.icon).setContentTitle(" "). 
              setStyle(new NotificationCompat.BigTextStyle().bigText(bundle.get("").toString())). 
              setContentText(bundle.get("").toString()); 
    mBuilder.setContentIntent(contentIntent); 

    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
+0

不起作用。我完全複製你的代碼。但情況是一樣的。當活動完成時,通知顯示但是很清楚 – shantanu 2015-04-01 08:18:55

+1

我測試了它並開始工作,您是否驗證過您沒有取消某處的通知? – 2015-04-01 08:31:52

+0

你可以發佈整個代碼嗎? – 2015-04-01 08:40:10

3

我認爲你是在取消您的應用程序的所有通知當活動被銷燬。