Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果在处理过程中单击,Android emulator将崩溃_Android_Android Asynctask_Emulation_Xamarin.android - Fatal编程技术网

如果在处理过程中单击,Android emulator将崩溃

如果在处理过程中单击,Android emulator将崩溃,android,android-asynctask,emulation,xamarin.android,Android,Android Asynctask,Emulation,Xamarin.android,我一直在开发一个android应用程序,并在模拟器上进行测试。此应用程序的某些部分需要一些处理时间,例如登录,可能需要10秒。如果应用程序正在处理登录,并且我单击了emulator屏幕上的任意位置,这将导致应用程序崩溃->将弹出一个强制关闭/等待窗口,即使我选择等待,此登录过程也永远不会完成 我想知道还有其他人遇到过这种情况吗?如何避免用户在处理过程中单击并使程序崩溃?或者在真正的手机上这不是问题 谢谢 编辑:这确实是一个UI线程问题,我正在使用Mono for Android来编写这个应用程序

我一直在开发一个android应用程序,并在模拟器上进行测试。此应用程序的某些部分需要一些处理时间,例如登录,可能需要10秒。如果应用程序正在处理登录,并且我单击了emulator屏幕上的任意位置,这将导致应用程序崩溃->将弹出一个强制关闭/等待窗口,即使我选择等待,此登录过程也永远不会完成

我想知道还有其他人遇到过这种情况吗?如何避免用户在处理过程中单击并使程序崩溃?或者在真正的手机上这不是问题

谢谢

编辑:这确实是一个UI线程问题,我正在使用Mono for Android来编写这个应用程序,我使用介绍的方法来解决我的问题

编辑: 这是LOGCAT消息

1-11 00:38:49.165 W/WindowManager(   59): Key dispatching timed out sending to BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1
01-11 00:38:49.165 W/WindowManager(   59): Previous dispatch state: {{KeyEvent{action=1 code=66 repeat=0 meta=0 scancode=28 mFlags=8} to Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false} @ 1326241690617 lw=Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false} lb=android.os.BinderProxy@4508a900 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false}}}
01-11 00:38:49.175 W/WindowManager(   59): Current dispatch state: {{null to Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false} @ 1326242329174 lw=Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false} lb=android.os.BinderProxy@4508a900 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{44ed87d0 BadumnaAndroidApi1.BadumnaAndroidApi1/badumnaandroidapi1.Activity1 paused=false}}}
01-11 00:38:49.276 I/Process (   59): Sending signal. PID: 316 SIG: 3
01-11 00:38:49.276 I/dalvikvm(  316): threadid=3: reacting to signal 3
01-11 00:38:49.485 I/dalvikvm(  316): Wrote stack traces to '/data/anr/traces.txt'
01-11 00:38:49.485 I/Process (   59): Sending signal. PID: 59 SIG: 3
01-11 00:38:49.485 I/dalvikvm(   59): threadid=3: reacting to signal 3
01-11 00:38:49.595 I/dalvikvm(   59): Wrote stack traces to '/data/anr/traces.txt'
01-11 00:38:49.616 I/Process (   59): Sending signal. PID: 114 SIG: 3
01-11 00:38:49.616 I/dalvikvm(  114): threadid=3: reacting to signal 3
01-11 00:38:49.625 I/dalvikvm(  114): Wrote stack traces to '/data/anr/traces.txt'
01-11 00:38:49.636 I/Process (   59): Sending signal. PID: 107 SIG: 3
01-11 00:38:49.645 I/dalvikvm(  107): threadid=3: reacting to signal 3
01-11 00:38:49.655 I/dalvikvm(  107): Wrote stack traces to '/data/anr/traces.txt'
01-11 00:38:49.673 I/Process (   59): Sending signal. PID: 254 SIG: 3
01-11 00:38:49.865 I/dalvikvm(  254): threadid=3: reacting to signal 3
01-11 00:38:49.875 I/Process (   59): Sending signal. PID: 246 SIG: 3
01-11 00:38:49.906 I/dalvikvm(  246): threadid=3: reacting to signal 3
01-11 00:38:50.085 I/Process (   59): Sending signal. PID: 177 SIG: 3
01-11 00:38:50.115 I/dalvikvm(  177): threadid=3: reacting to signal 3
01-11 00:38:50.285 I/Process (   59): Sending signal. PID: 221 SIG: 3
01-11 00:38:50.345 I/dalvikvm(  221): threadid=3: reacting to signal 3
01-11 00:38:50.495 I/Process (   59): Sending signal. PID: 169 SIG: 3
01-11 00:38:50.575 I/dalvikvm(  169): threadid=3: reacting to signal 3
01-11 00:38:50.695 I/Process (   59): Sending signal. PID: 185 SIG: 3
01-11 00:38:50.735 I/dalvikvm(  185): threadid=3: reacting to signal 3
01-11 00:38:50.905 I/Process (   59): Sending signal. PID: 111 SIG: 3
01-11 00:38:50.905 I/dalvikvm(  111): threadid=3: reacting to signal 3
01-11 00:38:51.065 I/dalvikvm(  111): Wrote stack traces to '/data/anr/traces.txt'
01-11 00:38:51.065 I/Process (   59): Sending signal. PID: 205 SIG: 3
01-11 00:38:51.185 I/dalvikvm(  205): threadid=3: reacting to signal 3
01-11 00:38:51.275 I/Process (   59): Sending signal. PID: 194 SIG: 3
01-11 00:38:51.405 I/dalvikvm(  194): threadid=3: reacting to signal 3
01-11 00:38:51.485 I/Process (   59): Sending signal. PID: 155 SIG: 3
01-11 00:38:51.605 I/dalvikvm(  155): threadid=3: reacting to signal 3
01-11 00:38:51.685 I/Process (   59): Sending signal. PID: 149 SIG: 3
01-11 00:38:51.875 I/dalvikvm(  149): threadid=3: reacting to signal 3
01-11 00:38:51.885 I/Process (   59): Sending signal. PID: 115 SIG: 3
01-11 00:38:51.916 I/dalvikvm(  115): threadid=3: reacting to signal 3

好的,很可能会因为这个繁重的处理而导致UI线程挂起,但是我可能在没有看到任何代码提示的情况下就挂起了。您可能将繁重的内容放在一个后台线程中,该线程与当前运行的GUI线程分离

幸运的是,Android在这方面可以帮助你。假设(因为问题中没有足够的细节)您通过向服务器发出web请求来登录应用程序。当用户按login时,您希望在后台线程中执行所有腿部工作时显示某种处理消息

看看本文,特别是AsyncTask示例

您可以看到,doInBackground()是完成所有繁重工作的地方,postExecute()再次在UI线程中运行,您需要根据刚才发生的事情的结果更新UI。例如,用户成功登录或登录时出错


我可以继续很长一段时间,但这是有据可查的。谷歌自己的另一篇好文章可以在这里找到

好的,你可能会因为这个繁重的处理而导致UI线程挂起,但是我可能会在没有看到任何代码提示的情况下离开。您可能将繁重的内容放在一个后台线程中,该线程与当前运行的GUI线程分离

幸运的是,Android在这方面可以帮助你。假设(因为问题中没有足够的细节)您通过向服务器发出web请求来登录应用程序。当用户按login时,您希望在后台线程中执行所有腿部工作时显示某种处理消息

看看本文,特别是AsyncTask示例

您可以看到,doInBackground()是完成所有繁重工作的地方,postExecute()再次在UI线程中运行,您需要根据刚才发生的事情的结果更新UI。例如,用户成功登录或登录时出错


我可以继续很长一段时间,但这是有据可查的。谷歌自己的另一篇好文章可以在这里找到

LogCat上有关于这种崩溃的可能原因的信息吗?你确定这是崩溃吗?也许你只是在UI线程中进行处理,而你的应用程序挂起(因此,带有强制关闭选项的窗口出现)。感谢@user1234567,我对android比较陌生,所以你的意思是我不能在UI线程中进行处理,否则会发生这种情况?@harism日志信息会更新。。正如user1234567所描述的那样,它看起来确实像一个线程问题。。我将更改处理线程,看看它是如何运行的LogCat上有关于这种崩溃的可能原因的信息吗?你确定这是崩溃吗?也许你只是在UI线程中进行处理,而你的应用程序挂起(因此,带有强制关闭选项的窗口出现)。感谢@user1234567,我对android比较陌生,所以你的意思是我不能在UI线程中进行处理,否则会发生这种情况?@harism日志信息会更新。。正如user1234567所描述的那样,它看起来确实像一个线程问题。。我会改变处理线程,看看它是如何处理的谢谢你,我认为你的观点很好,因为我正在做一些繁重的处理,我正在将一个windows.NET应用程序转换为android,以前有一个后台工作人员在后台处理这个问题,所以我认为这可能是问题所在。谢谢你提供的所有信息!我要试试看!谢谢,这是一个很好的答案,这正是我的问题所在。然而,我正在使用Mono for Android来编写应用程序(因为我从来没有提到过,所以你不可能知道),在我的例子中使用AsyncTask可能有点复杂。我已经使用中介绍的方法解决了我的问题,只针对那些也使用mono并且有相同问题的人。非常感谢你!!干杯谢谢你,我认为你说得很好,因为我正在做一些繁重的处理,我正在将一个windows.NET应用程序转换为android,以前有一个后台工作人员在后台处理这个问题,所以我认为这可能是问题所在。谢谢你提供的所有信息!我要试试看!谢谢,这是一个很好的答案,这正是我的问题所在。然而,我正在使用Mono for Android来编写应用程序(因为我从来没有提到过,所以你不可能知道),在我的例子中使用AsyncTask可能有点复杂。我已经使用中介绍的方法解决了我的问题,只针对那些也使用mono并且有相同问题的人。非常感谢你!!干杯