Android 在不获取应用程序上下文的情况下检测每个触摸事件?
我们可以通过在上下文上使用getWindow()获取每个活动的触摸事件,如:Android 在不获取应用程序上下文的情况下检测每个触摸事件?,android,android-activity,Android,Android Activity,我们可以通过在上下文上使用getWindow()获取每个活动的触摸事件,如: //set Window.Callback for getting touch event final Window window = context.getWindow(); final Window.Callback localCallback = window.getCallback(); window.setCallback(new MyWindowCallba
//set Window.Callback for getting touch event
final Window window = context.getWindow();
final Window.Callback localCallback = window.getCallback();
window.setCallback(new MyWindowCallback(localCallback));
如果不使用上下文,我们如何实现它
是否有任何方法可以删除此回调(因为window类没有任何删除回调方法?有一种方法可以在不传递应用程序上下文的情况下获取应用程序上下文。我在生产环境中使用了此代码,效果很好
private static Application getApplicationContext() throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
Context context;
final Class<?> activityThreadClass =
Class.forName("android.app.ActivityThread");
final Method method = activityThreadClass.getMethod("currentApplication");
context = (Application) method.invoke(null, (Object[]) null);
Log.d(tag_, "Context is " + context);
application = (Application)context;
return application;
}
私有静态应用程序getApplicationContext()抛出ClassNotFoundException、NoSuchMethodException、IllegaAccessException、InvocationTargetException{
语境;
最终类活动ThreadClass=
Class.forName(“android.app.ActivityThread”);
最终方法=activityThreadClass.getMethod(“currentApplication”);
context=(应用程序)方法.invoke(null,(Object[])null);
Log.d(tag_,“Context是”+Context);
应用程序=(应用程序)上下文;
退货申请;
}
“如果不使用上下文,我们如何实现它?”-你不能,真的。你可以实例化你自己的窗口,但你仍然需要一个上下文来完成。你想做什么?关于win.setCallback(null)呢
?要删除侦听器?如果设置为null,应用程序链接将崩溃。@MikeM。我想我们可以做:检查这些注释:为什么要删除回调?是的,但您仍然需要一个上下文。如果您的意思是需要在具有访问上下文的类之外获取上下文,您应该在问题中更清楚地解释这一点。您可以吗删除回调?忽略回调。不要执行代码添加条件。这是我目前正在做的。但我想创建一个方法来删除此回调尝试使用getCallback保留原始回调的实例,然后稍后设置该回调,这样您的回调就不会被调用。我在上一个命令中试图这么说新界:)