[英]Read current running activity from service
我創建了一個運行服務的應用程序,以讀取當前已打開並正在使用的應用程序/活動用戶。 問題在於該服務僅讀取啟動器應用程序。 它並沒有返回我當前打開的應用程序/活動。 你能幫我嗎? 我寫的代碼如下。 提前致謝。
@Override
public void onStart(Intent intent, int startId) {
// For time consuming an long tasks you can launch a new thread here...
Toast.makeText(this, " Service Started", Toast.LENGTH_LONG).show();
Runnable runable = new Runnable() {
public void run() {
try{
ActivityManager am2 = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am2.getRunningTasks(1).get(0).topActivity
.getPackageName();
Log.w("RunningTask", packageName);
handler.postDelayed(this, 8000);
}
catch (Exception e){
}
}
};
handler.postDelayed(runable, 8000);
}
如果您使用的是Android 5.0或更高版本, getRunningTasks()
使用getRunningTasks()
,它將僅返回一小部分子集,包括調用者自己的任務,以及其他一些任務,例如home。
您可以查看getRunningAppProcesses()
,該版本在Android 5.1.1之前可以使用。 請參閱僅在Android Lollipop 5.0和Android 5.1.1及更高 版本中無法獲取前台活動名稱 -getRunningAppProcesses()僅返回我的應用程序包
使用getRunningAppProcesses的示例:
ActivityManager am2 = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
String processName = am2.getRunningAppProcesses().get(0).processName;
Log.w("Running process", processName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.