gpt4 book ai didi

java - Android 线程主退出

转载 作者:行者123 更新时间:2023-12-02 08:31:46 27 4
gpt4 key购买 nike

我在“onCreate”中有一个线程,它正在从网络获取内容。当内容获取时,我有进度对话框。

new Thread() {

public void run() {

Get_content() ;


handler.sendEmptyMessage(0);
}

}.start();

但是,如果我在运行时旋转显示器(到横向模式),我的应用程序会强制关闭。在日志中我有这样的内容:“由于未捕获的异常,线程主要退出”

这是我的日志:

W/dalvikvm(17144): threadid=3: thread exiting with uncaught exception (group=0x40013140) E/AndroidRuntime(17144): Uncaught handler: thread main exiting due to uncaught exception E/AndroidRuntime(17144): java.lang.IllegalArgumentException: View not attached to window manager E/AndroidRuntime(17144): at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:356) E/AndroidRuntime(17144): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:201) E/AndroidRuntime(17144): at android.view.Window$LocalWindowManager.removeView(Window.java:400) E/AndroidRuntime(17144): at android.app.Dialog.dismissDialog(Dialog.java:268) E/AndroidRuntime(17144): at android.app.Dialog.access$000(Dialog.java:69) E/AndroidRuntime(17144): at android.app.Dialog$1.run(Dialog.java:103) E/AndroidRuntime(17144): at android.app.Dialog.dismiss(Dialog.java:252) E/AndroidRuntime(17144): at com.webservice.KursnaLista$1.handleMessage(KursnaLista.java:77) E/AndroidRuntime(17144): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(17144): at android.os.Looper.loop(Looper.java:123) E/AndroidRuntime(17144): at android.app.ActivityThread.main(ActivityThread.java:3948) E/AndroidRuntime(17144): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(17144): at java.lang.reflect.Method.invoke(Method.java:521) E/AndroidRuntime(17144): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) E/AndroidRuntime(17144): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) E/AndroidRuntime(17144): at dalvik.system.NativeStart.main(Native Method) I/dalvikvm(17144): threadid=7: reacting to signal 3 I/ActivityManager( 59): Process com.webservice (pid 17144) has died.

最佳答案

发生的事情是方向改变, Activity 被杀死并重新创建。但是,由于您启动了一个线程并且该线程仍在运行,因此它不会被终止,并且当它完成并尝试关闭进度对话框时,会导致 FC,因为进度对话框不存在。这是一个很常见的问题,你可以查看droid-fu尝试解决此问题的库,或者您可以更智能地处理线程任务(例如,如果需要花费相当多的时间才能完成,那么可能会将其放入后台服务中)。

关于java - Android 线程主退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com