如何解决给定 Android 代码片段中无法暂停活动的问题?

cyb*_*oid 1 android android-networking

以下是android代码片段

\n\n
runOnUiThread(new Runnable() {\n                                public void run() {\n                                    AlertDialog alertDialog;\n                                    alertDialog = new AlertDialog.Builder(MainActivity.this).create();\n                                    alertDialog.setTitle("Network error");\n                                    alertDialog.setMessage("Disconnected");\n                                    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ok", new DialogInterface.OnClickListener() {\n                                        /** ON clicking oKay button **/\n                                        public void onClick(DialogInterface dialog, int id)\n                                        {\n\n                                            hasConnectServiceStarted = false;\n                                            IP = null;\n//                                            Intent intent = getIntent();\n                                            Intent intentSplash = new Intent(getApplication().getApplicationContext(), SplashActivity.class);\n\n                                            /** Shutdown the nodemain executor service if\n                                             * HOST goes down\n                                             */\n                                            nodeMainExecutorService.forceShutdown();\n                                            /** and restart the Main Activity that will prompt\n                                             * user to reconnect to the HOST once again\n                                             */\n\n//  I want current activity to destroy before starting Splash Activity, hence calling onDestroy()\n                                            onDestroy();\n                                            startActivity(intentSplash);\n\n                                        }\n                                    });\n                                    alertDialog.show();\n
Run Code Online (Sandbox Code Playgroud)\n\n

});

\n\n

一切看起来都很好,但是当出现此警报对话框并单击“确定”时,我收到以下错误:

\n\n
\n

java.lang.RuntimeException:无法暂停活动 {edu.arizona.ece573.catgraph/edu.arizona.ece573.catgraph.MainActivity}:\n java.lang.IllegalStateException:没有主机\n 在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3293)\n 在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3252)\n 在 android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3227) )\n 在 android.app.ActivityThread.access$1100(ActivityThread.java:154)\n 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)\n 在 android.os.Handler.dispatchMessage(Handler .java:102)\n 在 android.os.Looper.loop(Looper.java:135)\n 在 android.app.ActivityThread.main(ActivityThread.java:5292)\n 在 java.lang.reflect.Method。调用(本机方法)\n 在 java.lang.reflect.Method.invoke(Method.java:372)\n 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)\n 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)\n 导致:java.lang.IllegalStateException: android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java: 没有主机\n) 1235)\n 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)\n 在 android.support.v4.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:2056)\n 在 android.support .v4.app.FragmentController.dispatchPause(FragmentController.java:198)\n 在 android.support.v4.app.FragmentActivity.onPause(FragmentActivity.java:401)\n 在 android.app.Activity.performPause(Activity.java :6101)\n 在 android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1310)\n 在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:3279)\n 在 android.app.ActivityThread.performPauseActivity(ActivityThread. java:3252)\xc2\xa0\n 在 android.app.ActivityThread.handlePauseActivity(ActivityThread.java:第3227章xa0\n 在 android.os.Handler.dispatchMessage(Handler.java:102)\xc2\xa0\n 在 android.os.Looper.loop(Looper.java:135)\xc2\xa0\n 在 android.app。 ActivityThread.main(ActivityThread.java:5292)\xc2\xa0\n 在 java.lang.reflect.Method.invoke(本机方法)\xc2\xa0\n 在 java.lang.reflect.Method.invoke(Method.java) :372)\xc2\xa0\n 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)\xc2\xa0\n 在 com.android.internal.os.ZygoteInit.main(ZygoteInit .java:699)

\n
\n\n

我应该如何解决这个错误?

\n

Ale*_*anu 5

我应该如何解决这个错误?

将呼叫替换为

onDestroy()

finish()
Run Code Online (Sandbox Code Playgroud)

您还应该检查文档以了解哪个方法执行什么操作。