[英]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.