2017-02-03 28 views
0

MainActivity我想知道當前在App中打開的頂級Activity如何獲取自己應用程序的頂級活動名稱

對於預棒棒糖我用以下

ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
ComponentName cn = am.getRunningTasks(1).get(0).topActivity; 

在我找到其他職位,我應該使用:

getAppTasks() and gettaskinfo 

但我無法找到任何完整的例子演示瞭如何使用以上。任何幫助都是感恩。問候。

編輯: 當前代碼:

if (Build.VERSION.SDK_INT >= 23) { 
     cn = am.getAppTasks().get(0).getTaskInfo().topActivity; 
}else{ 
     cn = am.getRunningTasks(1).get(0).topActivity; 
} 

am.getRunningTasks在API 21和am.getAppTasks#topActivity已被棄用是API提供23所以更新的問題是如何處理它的API 21 22.

回答

0
ActivityManager mgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 
if (mgr != null) { 
    List<ActivityManager.AppTask> tasks = mgr.getAppTasks(); 
    String className; 
    if (tasks != null && !tasks.isEmpty()) { 
    className = tasks.get(0).getTaskInfo().topActivity.getClassName(); 
    } 
}  

現金去https://www.intertech.com/Blog/android-5-api-changes-getapptasks/

相關問題