在我的應用程序中,我有一個系統,我可以從應用程序中的任何位置顯示對話框,甚至可以從輔助線程顯示對話框。當我收到來自服務器的一些通知,我只是將對話框放在用戶眼前(對話框顯示在從應用程序上下文打開的透明活動中)。我的問題是,當應用程序在後臺並從服務器接收信號時,它會啓動包含對話框的透明活動,所以應用程序會在前臺顯示 - 這是違反android(和我的)規則的。Android:如何防止活動在後臺啓動並前往
我創建了一個通知系統,以便顯示來自服務器的收件人是狀態欄。 我與透明活動(持有對話框)的通知相關聯,所以當用戶點擊通知時,會被帶到對話框。
Intent notificationIntent = new Intent(CVSApplication.getInstance(), CVSDialogActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(CVSApplication.getInstance(), 0, notificationIntent, 0);
問題是應用程序無論如何都被帶到前面,即使用戶沒有點擊通知。
當startActivity被調用時,有沒有什麼辦法可以防止從背景返回CVSDialogActivity? 這裏是一個開始CVSDialogActivity意圖:
intent = new Intent(app, CVSDialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(USE_CUSTOM_CONTENT, false);
intent.putExtra(INSTANCE, this.hashCode());
我也試過這個變體:
intent = new Intent(app, CVSDialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_FROM_BACKGROUND);
intent.putExtra(USE_CUSTOM_CONTENT, false);
intent.putExtra(INSTANCE, this.hashCode());
,但是當startActivity(意向)被稱爲應用程序被帶到前面(我想顯示包含對話框的活動,但在後臺,以及當用戶點擊通知時,將應用程序放到前臺)。
謝謝, 亞歷克斯