梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

监控Activity的启动等状态--- 源码级

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.需要申明权限:

 

    <uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>

 

posted on 2014-11-05 20:53  梦书  阅读(2613)  评论(0编辑  收藏  举报