上周做一个小的功能,修改statusbar,在launcher界面和其它应用界面显示不同的背景色和icon,最初想的就是接受系统activity启动的广播,进行判断,研究了一段时间,发现接受不到广播,最后在网上搜索资料,发现monkey代码中有一段代码可以接受activity启动和resume事件。最终满足要求。代码如下
1.设置观察者
mAm = ActivityManagerNative.getDefault();
try {
mAm.setActivityController(new ActivityController());
} catch (RemoteException e) {
System.err.println("** Failed talking with activity manager!");
}
2.观察者类
private class ActivityController extends IActivityController.Stub {
//start
public boolean activityStarting(Intent intent, String pkg) {
currentPkg = pkg;
mHandler.sendEmptyMessage(MSG_UPDATE_BACKGROUND);
//currentIntent = intent;
return true;
}
//resume