2017-07-03 88 views
0

我一直在嘗試幾天來在Android上創建通知(使用按鈕)並處理其對主要活動的操作。一切正常,但有一個問題我找不出來:Android PendingIntent以及我應該如何在主要活動中處理其操作

當活動由PendingIntent打開時,它會在檢查操作是否爲通知(getIntent().getAction().equals("action"))中的操作之後顯示對話框。

到目前爲止還不錯,但是當用戶點擊最近的應用程序然後回到活動中時,操作會再次處理。

我試着對onCreate()方法進行檢查,但每次調用時都會調用它,因爲清單中的活動標記爲noHistory=true

因此,每次都重新創建活動,所以我無法使用布爾標誌僅顯示一次對話框。我想在PendingIntent中使用廣播,但我仍然需要啓動主要活動(這是業務需求)。

即使我刪除了noHistory屬性,當按下後退按鈕時,finish()被調用並且活動被銷燬,但它可以從最近的應用程序菜單重新運行,並且所有事情都從地點。

任何人都可以請給我一個關於如何處理這個問題的提示嗎?請記住,動作驗證方法是從onCreate()調用的,後者每次應用離開前臺時都會調用,因爲noHistory以及用戶單擊後退按鈕(撥打finish())和onCreate()將在下次用戶將應用程序從最近的菜單中移到前臺時再次調用(我不應該禁用它,因爲它是應用程序所需的)。

爲了讓我自己更清楚,問題是用戶每次應用程序轉到背景時都會看到對話框,並從最近的應用程序菜單中選擇或單擊最近的應用程序按鈕,然後用戶選擇我的活動。

回答

0

我發現了一個很好的方法來解決它。 謝謝。

相關問題