有没有办法了解主屏幕中的用户是单击应用的图标还是只是桌面?
在开发动态壁纸期间,我重写了onTouchEvent
功能
@Override
public void onTouchEvent(MotionEvent event) {
int action = event.getAction();
float currentXPosition = event.getX();
float currentYPosition = event.getY();
Log.d(Constants.TAG_DISPLAY, "Action = " + action);
Log.d(Constants.TAG_DISPLAY, "X = " + currentXPosition + "Y = " + currentYPosition);
if (action == MotionEvent.ACTION_UP) {
Log.d(Constants.TAG_DISPLAY, "FIRE Action, drawframe");
pos[0] = Math.round(currentXPosition) + 150;
pos[1] = Math.round(currentYPosition) - 50;
drawFrame(true, true);
}
super.onTouchEvent(event);
}
为了刷新壁纸。但是如果用户打开一个应用程序,我不想刷新它。从事件或超级操作,可以确定用户操作吗?
答案 0 :(得分:0)
我找到了解决方法,以了解用户是否打开了应用。只是开放的过程,而不是前台的后台应用程序。
public int getTotalRunningApp(){
ActivityManager actvityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
return procInfos.size();
}
@Override
public void onTouchEvent(MotionEvent event) {
int runApp = getTotalRunningApp();
Log.wtf(Constants.TAG_APP, "RunningApp = " + runApp);
...
super.onTouchEvent(event);
runApp = getTotalRunningApp();
Log.wtf(Constants.TAG_APP, "RunningApp = " + runApp);
...
}
通过在真实getTotalRunningApp()
之前和之后调用super.onTouchEvent
,我们可以监控正在运行的应用的数量,并了解“一点点”,如果用户正在点击应用或只是移动主屏幕或什么都不做。
它不适用于后台应用程序。