從網絡瀏覽器打開活動後清除堆棧我的應用程序有一個活動,在瀏覽器中啓動oauth授權過程,最後瀏覽器接收重定向到url「appname ://com.appname「,回調我的活動。 (活動聲明它可以查看此類網址)通過url「appname://com.appname/」
一切都可以,但如果用戶按下「返回」,他會返回到網絡瀏覽器。 當活動被回叫時,我想清除歷史堆棧,使這個活動成爲這個任務的根和頂部。
我可以在這種情況下使用哪些標誌或掛鉤?
我發現只有一個醜陋的解決方案: 接收應用程序的名字://com.appname網址,以特殊的「插科打諢」活動,將在其推出的onResume主要活動。
我試圖讓主要活動「singleTask」,在新任務中啓動瀏覽器,設置標誌NO_HISTORY和EXLUDE_FROM_RECENTS,CLEAR_TOP,設置clearTaskOnLaunch =「true」。 嘗試清單中的標誌和標籤的許多組合 - 沒有任何幫助。
我解決了這個問題:
1)在AndroidManifest.xml
2)在新任務啓動瀏覽器(與FLAG_ACTIVITY_NEW_TASK)設置clearTaskOnLaunch = 「真」,並完成當前活動(完成當前任務)。
3)覆蓋onBackPressed:而不是完成此活動調用moveTaskToBack(true);
當用戶按回 - 任務(瀏覽器在它的根目錄)去背景和用戶看到他的主屏幕。
當用戶再次啓動應用程序 - 它從現有實例打開,清除任務,併成爲它的根目錄(因爲clearTaskOnLaunch =「真」)