我有一個服務,它爲網站提供數據,然後在必要時給用戶一個通知。一旦服務結束,通知就消失
我遇到的問題是,服務關閉後(即時可能)通知消失。下面的代碼是應用程序所有的通知代碼。我沒有輸入任何代碼來取消通知。
public static void CreateNotificationCompat(int notificationID, String link, String title, String text, Context ctx)
{
Intent notificationIntent = new Intent("android.intent.action.VIEW", Uri.parse(link));
PendingIntent contentIntent = PendingIntent.getActivity(ctx.getApplicationContext(), 0, notificationIntent, 0);
NotificationManager nm = (NotificationManager) ctx
.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx);
Resources res = ctx.getResources();
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.notify_icon)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(text)
.setAutoCancel(false);
Notification n = builder.getNotification();
nm.notify(notificationID, n);
}
如果它有什麼區別(很確定它沒有)我在這裏使用應用程序上下文。
我的服務定期啓動,處理一個網站,如果需要通知,然後關閉。
在我的服務結束,而不是僅僅調用stopSelf()我睡了30秒左右然後調用stopSelf()。然後通知停留30秒,然後消失。在通知消失時,logcat中不會顯示任何相關信息。
到目前爲止,我只能使用ICS進行測試。
這應該是罰款。如果您的應用程序被強行殺死,通常通知將會消失。我期望有什麼東西在崩潰。看看你用什麼代碼來「睡眠」(你實際上是在告訴線程進入睡眠狀態?)以及運行什麼線程會很有趣。嘗試去除實驗30秒睡眠並查看是否發生相同行爲也會很有趣。 – kabuko 2012-09-07 19:37:40
取消通知的代碼在哪裏?此外,FYI你不應該使用像android.intent.action。*這樣的直接字符串,因爲這是一個CONSTANT,可以在Intent類中使用。 @ user1531605 – JoxTraex 2012-09-12 03:55:08
如果要求服務在「發佈通知之前停止」,即在相同的代碼執行鏈上停止,通知將被清除。 – 2014-12-12 06:18:13