Java 如何在android上处理加速计强制关闭

Java 如何在android上处理加速计强制关闭,java,android,accelerometer,Java,Android,Accelerometer,当设备方向多次改变时,我遇到了一个问题, 此日志: 05-17 11:28:53.121: ERROR/WindowManager(284): Activity com.korekapi.ipay.activity.Search has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43851260 that was originally added here 05-17 11:28:53.121: ER

当设备方向多次改变时,我遇到了一个问题, 此日志:

05-17 11:28:53.121: ERROR/WindowManager(284): Activity com.korekapi.ipay.activity.Search has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43851260 that was originally added here
05-17 11:28:53.121: ERROR/WindowManager(284): android.view.WindowLeaked: Activity com.korekapi.ipay.activity.Search has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43851260 that was originally added here
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.view.ViewRoot.<init>(ViewRoot.java:214)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.view.Window$LocalWindowManager.addView(Window.java:409)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.Dialog.show(Dialog.java:238)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ProgressDialog.show(ProgressDialog.java:107)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ProgressDialog.show(ProgressDialog.java:90)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ProgressDialog.show(ProgressDialog.java:85)
05-17 11:28:53.121: ERROR/WindowManager(284):     at com.korekapi.ipay.activity.Search$SearchTask.onPreExecute(Search.java:124)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.os.AsyncTask.execute(AsyncTask.java:391)
05-17 11:28:53.121: ERROR/WindowManager(284):     at com.korekapi.ipay.activity.Search.doSearch(Search.java:101)
05-17 11:28:53.121: ERROR/WindowManager(284):     at com.korekapi.ipay.activity.Search.onCreate(Search.java:70)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3502)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread.access$2200(ActivityThread.java:116)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1798)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.os.Looper.loop(Looper.java:123)
05-17 11:28:53.121: ERROR/WindowManager(284):     at android.app.ActivityThread.main(ActivityThread.java:4203)
05-17 11:28:53.121: ERROR/WindowManager(284):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 11:28:53.121: ERROR/WindowManager(284):     at java.lang.reflect.Method.invoke(Method.java:521)
05-17 11:28:53.121: ERROR/WindowManager(284):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-17 11:28:53.121: ERROR/WindowManager(284):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-17 11:28:53.121: ERROR/WindowManager(284):     at dalvik.system.NativeStart.main(Native Method)
05-17 11:28:53.121:错误/WindowManager(284):Activity com.korekapi.ipay.Activity.Search已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@43851260原来是加在这里的
05-17 11:28:53.121:错误/WindowManager(284):android.view.WindowLeaked:Activity com.korekapi.ipay.Activity.Search已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@43851260原来是加在这里的
05-17 11:28:53.121:错误/WindowManager(284):在android.view.ViewRoot(ViewRoot.java:214)上
05-17 11:28:53.121:错误/WindowManager(284):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)上
05-17 11:28:53.121:错误/WindowManager(284):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-17 11:28:53.121:错误/WindowManager(284):在android.view.Window$LocalWindowManager.addView(Window.java:409)
05-17 11:28:53.121:错误/WindowManager(284):在android.app.Dialog.show(Dialog.java:238)上
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ProgressDialog.show(ProgressDialog.java:107)上
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ProgressDialog.show(ProgressDialog.java:90)上
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ProgressDialog.show(ProgressDialog.java:85)上
05-17 11:28:53.121:ERROR/WindowManager(284):位于com.korekapi.ipay.activity.Search$SearchTask.onPreExecute(Search.java:124)
05-17 11:28:53.121:错误/WindowManager(284):在android.os.AsyncTask.execute(AsyncTask.java:391)上
05-17 11:28:53.121:ERROR/WindowManager(284):位于com.korekapi.ipay.activity.Search.doSearch(Search.java:101)
05-17 11:28:53.121:ERROR/WindowManager(284):位于com.korekapi.ipay.activity.Search.onCreate(Search.java:70)
05-17 11:28:53.121:ERROR/WindowManager(284):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
05-17 11:28:53.121:错误/窗口管理器(284):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ActivityThread.handleRunchActivity(ActivityThread.java:3502)
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ActivityThread.access$2200(ActivityThread.java:116)
05-17 11:28:53.121:ERROR/WindowManager(284):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1798)
05-17 11:28:53.121:错误/WindowManager(284):在android.os.Handler.dispatchMessage(Handler.java:99)上
05-17 11:28:53.121:错误/WindowManager(284):在android.os.Looper.loop(Looper.java:123)
05-17 11:28:53.121:错误/WindowManager(284):在android.app.ActivityThread.main(ActivityThread.java:4203)
05-17 11:28:53.121:错误/WindowManager(284):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-17 11:28:53.121:ERROR/WindowManager(284):在java.lang.reflect.Method.invoke(Method.java:521)
05-17 11:28:53.121:错误/WindowManager(284):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-17 11:28:53.121:ERROR/WindowManager(284):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-17 11:28:53.121:错误/窗口管理器(284):在dalvik.system.NativeStart.main(本机方法)
因此,如何克服加速度计,以避免在方向改变期间重新加载/刷新


感谢您的帮助

严格来说,这不是加速度计的问题。您的问题是在
Search.java
类中显示
ProgressDialog
(请参见
05-17 11:28:53.121:ERROR/WindowManager(284):位于com.korekapi.ipay.activity.Search$SearchTask.onPreExecute(Search.java:124)
)并且在方向更改且活动被Android破坏时不删除它。最简单的解决方案是防止Android破坏方向改变时的活动:有关更多信息,请参阅

更复杂的是清理自己的身后并关闭所有对话框:为此,您需要跟踪任何打开的对话框并自己关闭它们