0
我有一個實現IntentService的類,它從Web服務中檢索一些數據,並且如果條件已驗證,則在通知欄的設備上顯示通知。 這是代碼:意向服務,選擇要啓動的活動
現在,如果在通知用戶水龍頭,閃屏活動啓動(我的應用程序的它的第一個活動)public BackgroundService() {
super("SERVICENAME");
}
@Override
protected void onHandleIntent(Intent intent) {
if (verifyConditions()) {
showNotification();
}
}
private void showNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(
this).setContentTitle("title")
.setContentText("content")
.setSmallIcon(R.drawable.notification_icon);
// .setContentIntent(pendingIntent);
Intent notificationIntent = new Intent(this.getApplicationContext(),
SplashScreen.class);
PendingIntent contentIntent = PendingIntent.getActivity(
this.getApplicationContext(), 0, notificationIntent, 0);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
// set sound
Uri alarmSound = RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(alarmSound);
builder.setContentIntent(contentIntent);
Notification notification = builder.build();
// Hide the notification after it's selected
notification.flags |= Notification.FLAG_AUTO_CANCEL;
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
}
。如果用戶關閉了應用程序,這是可以的,但如果應用程序在前臺,點擊通知會導致應用程序重新啓動。 有一個快速的方法來檢查應用程序是否在前臺,如果是的話,啓動一個不同的活動,以SplashScreen?
plaese閱讀「Intent.FLAG_ACTIVITY_CLEAR_TOP」的文檔 – Selvin 2015-04-02 10:19:31