簡體   English   中英

單擊通知時如何關閉我的應用程序?

[英]How to close my application when clicking on a notification?

我創建了通知,當您單擊通知時會執行startActivity。 這非常有效,尤其是在我的應用程序尚未啟動時。

我的問題是由於上一個活動仍處於打開狀態,因此當我打開通知時。

我的意圖是,當您單擊通知以關閉當前應用程序時,它僅包含來自通知的新呼叫。

我試過在“ AndroidManifest”中顯示“ android:launch =”和PendingIntents上的標志,但是我沒有成功運行它。

有什么幫助嗎? 謝謝

編輯:我的應用程序啟動如下:

SplashScreen.class-> Main.class(是一個TabActivity)

當我單擊通知時,我將執行以下操作:SplashScreen.class-> Main.class(是TabActivity)

但是,如果我的應用程序已經啟動,並且我在通知中脈動,則我有:

新增-SplashScreen.class-> Main.class(是TabActivity)(當前)舊。 並且下面仍然在Main.class上面打開

如果您需要在單擊通知時打開SplashScreen.class,請嘗試創建如下所示的意圖:

Intent intent = new Intent(myContext, SplashScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

如文檔所述,表示Intent.FLAG_ACTIVITY_CLEAR_TOP

如果已設置,並且正在啟動的活動已經在當前任務中運行,那么與其啟動該活動的新實例,不如關閉該活動之上的所有其他活動,並將此Intent傳遞給(現在頂部)將舊活動作為新的Intent。

例如,考慮一個由以下活動組成的任務:A,B,C,D。如果D調用具有解析為活動B組件的Intent的startActivity(),則C和D將完成,並且B接收給定的Intent ,導致堆棧現在為:A,B。

在上面的示例中,活動B的當前正在運行的實例將通過onNewIntent()方法接收您在此處開始的新意圖,或者自行完成並使用新意圖重新啟動。 如果已將其啟動模式聲明為“多個”(默認),並且您未將FLAG_ACTIVITY_SINGLE_TOP設置為相同的意圖,則它將完成並重新創建;否則,它將重新創建。 對於所有其他啟動模式,或者如果設置了FLAG_ACTIVITY_SINGLE_TOP,則此Intent將被傳遞到當前實例的onNewIntent()。

因此,當您使用此標志啟動SplashScreen活動時,如果該活動已經在堆棧中,它將被帶到頂部,並且堆棧上位於其上方的所有其他活動將被清除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM