簡體   English   中英

Android服務來檢測其他應用程序是否正在運行

[英]Android service to detect if another application is running

是否有類似Intent.ACTION_SCREEN_OFF來跟蹤是否啟動了特定的應用程序? 任何幫助將不勝感激!

if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// Do something 
} else if (// application XYZ started) {
// Do something Else 
}

您可以查看應用程序是否正在運行:

ActivityManager activity_manager = (ActivityManager)context.getSystemService(Activity.ACTIVITY_SERVICE);
final   ActivityManager activityManager = (ActivityManager)       getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks    (Integer.MAX_VALUE);
for (int i = 0; i < recentTasks.size(); i++) 
{
    Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(i).id+"");         
}

如果應用程序是前台:

public static boolean isForeground(Context ctx, String myPackage){
ActivityManager manager = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > runningTaskInfo = manager.getRunningTasks(1); 

ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
if(componentInfo.getPackageName().equals(myPackage)) {
    return true;
}       
return false;
}

暫無
暫無

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

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