1.代码
参见:http://stackoverflow.com/questions/9452549/monitoring-the-recent-apps
private void setActivityController() { IActivityManager am = ActivityManagerNative.getDefault(); try { am.setActivityController(new ActivityController()); } catch (RemoteException e) { e.printStackTrace(); } } public class ActivityController extends IActivityController.Stub { private static final String TAG = ActivityController.class.getSimpleName(); @Override public boolean activityResuming(String pkg) throws RemoteException { Log.e(TAG, "activityResuming -- "+pkg); return true; } @Override public boolean activityStarting(Intent intent, String pkg) throws RemoteException { Log.e(TAG, "activityStarting -- "+pkg+" intent="+intent); return true; } @Override public boolean appCrashed(String processName, int pid, String shortMsg, String longMsg, long timeMillis, String stackTrace) throws RemoteException { Log.e(TAG, "appCrashed -- "+processName); return true; } @Override public int appEarlyNotResponding(String processName, int pid, String annotation) throws RemoteException { Log.e(TAG, "appEarlyNotResponding -- "+processName); return 0; } @Override public int appNotResponding(String processName, int pid, String processStats) throws RemoteException { Log.e(TAG, "processName -- "+processName); return 0; } }
2.需要申明权限: