在后台双击侦听器



如果应用程序在后台,我也会创建一个应用程序来双击。 我创建此代码:

public class MainActivity extends Activity implements
GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener
{
private static final String DEBUG_TAG = "Gestures";
private GestureDetectorCompat mDetector;
private int counter = 0;
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDetector = new GestureDetectorCompat(this,this);
mDetector.setOnDoubleTapListener(this);
}
@Override
public boolean onDoubleTap(MotionEvent event)
{
counter++;
Log.d(DEBUG_TAG, String.valueOf(counter));
return true;
}
//..........................
}

如果应用程序在日志中打开,我会看到双击计数增加,如果应用程序在后台运行,则数字将被阻止。 有办法解决它吗?或者我必须创建一个服务?我需要一个 grafic 应用程序和服务,有没有办法同时创建一个? 谢谢

这个问题没有一个简单的答案。通常这是不可能的,因为应用程序无法与应用程序本身之外的其他Android界面进行交互。但是,如果设备具有root权限,则可以直接读取触摸屏并拦截所有触摸事件。

存在一种不需要 Root 的替代方法,但我不想使用它:放置一个全屏视图,充当透明层并拦截所有事件。然而,这种方法有几个缺点:减慢整个设备的图形性能(特别是在运行游戏时(,在触摸交互区域(按钮、复选框等(时可能会干扰用户体验,但是由于丢失一些触摸事件而无法正常工作。

最新更新