是的,我想没有办法注册广播接收器来检测应用程序启动。其中一种方法可能是(类似于您的建议):
// TO GET INSTALLED APPS
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> packageList = getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo resolveInfo : packageList) {
Log.d("ResolveInfo", "Package: " + resolveInfo.activityInfo.packageName);
}
// TO GET INFO OF RUNNING PROCESSES
ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcessInfos = activityManager.getRunningAppProcesses();
for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcessInfos) {
Log.d("runningAppProcessInfo", "Running process name: " + runningAppProcessInfo.processName);
}
并使用Service轮询您感兴趣的应用程序的状态。