2015-05-28 180 views
0

工作,我有一個使用的topActivity調用應用程序,這工作得很好在Android 4.x的,但由於更新到5.x這已停止工作之間的一段時間內無超時的應用程序。ActivityManager topActivity不棒棒糖

完整的呼叫

ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); 

任何人都經歷這之前還是有一個解決方案?沒有錯誤,它只是沒有返回所期望的。

注:這不是一個商業應用程序,這是非常有限的,有管理的分配。

回答

0

引用the documentation for getRunningTasks()

此方法是在API級21

作爲棒糖的過時,這種方法不再可用到第三方應用程序:引入文檔爲中心的最近用過的意味着它可以將個人信息泄露給呼叫者。爲了向後兼容,它仍然會返回一小部分數據:至少是調用者自己的任務,還有可能是一些其他任務,比如家中已知不敏感的任務。

+0

謝謝。在Android的不推薦使用通常不意味着它不被推薦和不保證穩定,但不是不會工作。 – Cob50nm

+0

@ Cob50nm:是的,一般來說,「棄用」意味着Google會建議您使用其他方法,但不推薦使用的類或方法仍然有效。有時候,在這種情況下,「不推薦」會更快地消除功能,特別是在涉及隱私和安全的情況下。 – CommonsWare

+0

再次感謝你,完全可以理解爲什麼他們這樣做,只是煩人,因爲這意味着我現在需要找到解決方法。 – Cob50nm