簡體   English   中英

我可以查看當前從服務運行的應用程序嗎?

[英]can i check to see what application is currently running from a service?

我試圖通過執行以下操作檢查用戶從我創建的服務中查看當前正在/正在使用的應用程序或活動:

 ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(
                        Context.ACTIVITY_SERVICE);

                List<ActivityManager.RunningAppProcessInfo> processList = am.getRunningAppProcesses();
String cProcess = processList.get(0).processName;

但這有時會顯示com.android.systemui或com.android.buetooth等服務,即使其他活動在前面也是如此。

我想這是檢查服務而不是活動..是否有更好的更可靠的方式來查看當前哪個應用程序在前台?

我認為activityManager.getRunningTasks()更符合您的需求,但請注意Android開發人員警告不要將ActivityManager用於您的應用程序的任何核心功能。

嘗試檢查流程的重要性:

List<RunningAppProcessInfo> appProcesses= null;
appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses!=null) {

    for (RunningAppProcessInfo appProcess : appProcesses) {
        if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
            // Log.d("MYTAG",appProcess.processName+":"+appProcess.importance+" is foreground");
        }
    }
}

這就像一個魅力..感謝JRaymond:

ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(
                    Context.ACTIVITY_SERVICE);

            List<ActivityManager.RunningTaskInfo> processList = am.getRunningTasks(3);


            String cProcess = processList.get(0).baseActivity.getPackageName();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM