onBackPressed 从后台线程设置 ArrayAdapter

onBackPressed while setting an ArrayAdapter from background thread

我正在尝试从一个可运行的线程中更新我的 UI 线程。在我按下后退按钮中断该方法之前,它工作正常。当发生这种情况时,它会从 NPE 中崩溃。如果按下后退按钮,我需要一种方法来阻止该线程更新。谢谢!

                  view.post ( uiRun = new Runnable() {
                        public void run() {
                                /* UI update */

                                areasAdapter2 = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, CL);
                                areasAdapter2.setDropDownViewResource(android.R.layout.simple_list_item_1);
                                mContactLog.setAdapter(areasAdapter2);
                        }
                    });

05-10 18:26:00.610 13511-13511/com.example.bryan.customer84 E/UncaughtException: java.lang.NullPointerException: 尝试调用虚拟方法 'java.lang.Object android.content.Context.getSystemService(java.lang.String)'空对象引用 在 android.widget.ArrayAdapter.init(ArrayAdapter.java:310) 在 android.widget.ArrayAdapter.(ArrayAdapter.java:153) 在 com.example.bryan.customer84.PhoneSearch$9.run(PhoneSearch.java:606) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:5835) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

您正在尝试访问已被垃圾回收的 activity...在 运行() 中为 getActivity() 添加空检查!= null