我有2個不同的應用程序A和B,我想創建一個從B到A的特殊動畫,即在B可見後打開A時。這意味着我需要以某種方式知道之前的應用程序,之後我的應用程序被打開。我可以有從B到A的不同場景 - 使用「最新應用」(多任務)按鈕,使用「後退」按鈕,使用「主頁」按鈕(應用程序A是自定義主屏幕)。有什麼想法如何做到這一點? ActivityManager中的一些函數可能會有所幫助,但他們在文檔中有評論說不使用它們來實現邏輯和控制流。Android:如何知道以前的應用程序
0
A
回答
0
我設法弄清楚如何實現這一點,它爲我工作。
我用this answer,但與供給ActivityManager.getRecentTasks()
RECENT_WITH_EXCLUDED | RECENT_IGNORE_UNAVAILABLE
取代ActivityManager.getRunningTasks()
,並從結果的baseIntent構件採取了組件名稱。索引1處的信息是在當前應用程序打開之前運行的信息,與您回到應用程序的方式無關 - 返回按鈕,主頁按鈕,最近按鈕或從另一個應用程序打開。
注:當你的應用程序啓動時,就像在onResume()
但因爲新任務尚未加載到行爲管理器(在onPause()
調用時)不會當你的應用程序被關閉工作,這工作。所以如果你還需要知道你要去哪個應用程序,那麼它可能會更復雜一些。
NOTE2:儘管文件告知不能使用該API上述任何一種邏輯和控制流的,我看到的多任務/最近的應用程序的代碼是做完全一樣的,所以在我看來,這不應該是因爲他們寫文檔是有風險的。
注意3:不要忘記遵循上面提到的答案中的所有步驟,例如添加所需的權限,否則您將會遇到異常。作爲本系統的一部分,對我來說更容易。
1
不確定這是否適用於不同的應用程序,但getCallingActivity() or getCallingPackage()怎麼樣?
如果這不起作用,當您啓動指示啓動應用程序的意圖時,是否可以傳遞一些'extra' data in the bundle?
相關問題
- 1. Android:如何知道應用程序是否可以啓動
- 2. 如何知道用戶何時關閉了Android應用程序?
- 3. 如何知道Android中的應用程序的顯示大小?
- 4. 如何知道我的android應用程序的安裝總數?
- 5. 不知道如何返回到以前的應用程序或主屏幕
- 6. 如何知道應用程序是否在前臺?
- 7. 如何知道Android應用程序是否爲混合應用程序?
- 8. 如何知道我的android應用程序在reciver中運行?
- 9. 如何知道Android應用程序中的各種活動
- 10. 如何知道我的應用程序中android
- 11. iphone應用程序如何知道其他應用程序?
- 12. 如何知道何時啓動並銷燬Android應用程序?
- 13. 如何知道在Android應用程序中使用哪些庫
- 14. 如何知道Android應用程序是否被禁用ICS
- 15. 如何知道我的Android應用程序已升級以重置鬧鐘?
- 16. 任何人都知道我可以如何運行Android示例應用程序?
- 17. 如何知道是否爲android中的應用程序啓用通知?
- 18. Android應用程序如何知道三星Gear?
- 19. 我如何知道Android應用程序重新連接到Socket.io?
- 20. Android:如何知道應用程序在哪裏運行
- 21. Android,我如何知道應用程序是否已關閉
- 22. 如何知道應用程序安裝在android中完成?
- 23. 如何知道Android應用程序是否被重新部署?
- 24. 如何知道Android應用程序來自Google Play商店
- 25. 如何知道Android應用程序顯示或不顯示通知的應用程序狀態?
- 26. 如何獲取在卸載應用程序之前通知android
- 27. 的android:如何知道應用是否被另一個應用程序稱爲
- 28. 如何知道在黑莓中調用的應用程序的當前狀態?
- 29. Android - 如何知道何時將超級用戶授予我的應用程序?
- 30. 如何知道用戶點擊android中的任何應用程序?
根據文檔,您的建議僅適用於同一應用中的活動,並且只有在使用[startActivityForResult()](http://developer.android.com/reference/android/app/Activity.html #startActivityForResult(android.content.Intent,%20int))。那不是我的情況。 – frangulyan