[英]How to close any activity of my application by clicking on a notification?
[英]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.