如何解决给定android代码段中无法暂停活动的问题?
以下是android代码片段如何解决给定android代码段中无法暂停活动的问题?,android,android-networking,Android,Android Networking,以下是android代码片段 runOnUiThread(new Runnable() { public void run() { AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(MainActivity.this
runOnUiThread(new Runnable() {
public void run() {
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Network error");
alertDialog.setMessage("Disconnected");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ok", new DialogInterface.OnClickListener() {
/** ON clicking oKay button **/
public void onClick(DialogInterface dialog, int id)
{
hasConnectServiceStarted = false;
IP = null;
// Intent intent = getIntent();
Intent intentSplash = new Intent(getApplication().getApplicationContext(), SplashActivity.class);
/** Shutdown the nodemain executor service if
* HOST goes down
*/
nodeMainExecutorService.forceShutdown();
/** and restart the Main Activity that will prompt
* user to reconnect to the HOST once again
*/
// I want current activity to destroy before starting Splash Activity, hence calling onDestroy()
onDestroy();
startActivity(intentSplash);
}
});
alertDialog.show();
}))
一切似乎都很好,但当出现此警报对话框并单击“确定”时,我会出现以下错误:
java.lang.RuntimeException:无法暂停活动{edu.arizona.ece573.catgraph/edu.arizona.ece573.catgraph.MainActivity}:
java.lang.IllegalStateException:无主机
在android.app.ActivityThread.performPauseActivity(ActivityThread.java:3293)上
位于android.app.ActivityThread.performPauseActivity(ActivityThread.java:3252)
位于android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3227)
在android.app.ActivityThread.access$1100(ActivityThread.java:154)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5292)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:904)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
原因:java.lang.IllegalStateException:无主机
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1235)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)
位于android.support.v4.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:2056)
位于android.support.v4.app.FragmentController.dispatchPause(FragmentController.java:198)
位于android.support.v4.app.FragmentActivity.onPause(FragmentActivity.java:401)
在android.app.Activity.performPause(Activity.java:6101)
位于android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1310)
在android.app.ActivityThread.performPauseActivity(ActivityThread.java:3279)上
位于android.app.ActivityThread.performPauseActivity(ActivityThread.java:3252)
位于android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3227)
在android.app.ActivityThread.access$1100(ActivityThread.java:154)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5292)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:904)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
如何解决此错误?只需在startActivity(intentSplash)之后调用finish()
编码>并删除destroy()
,您将获得当前活动将要销毁的内容。只需在startActivity(intentSplash)之后调用finish()
编码>并删除destroy()
,您将获得当前活动将销毁的内容
我应该如何解决此错误
替换对的呼叫
onDestroy()
与
您还应该检查,看看哪个方法做什么
我应该如何解决此错误
替换对的呼叫
onDestroy()
与
您还应该检查,看看哪个方法做什么。摆脱ondestory()代码>。请。我希望在启动Splash活动之前先销毁当前活动。这取决于android。调用finish()
而不是ondestory()
您不应该直接调用生命周期回调代码>。请。我希望在启动Splash活动之前先销毁当前活动。这取决于android。调用finish()
而不是onDestroy()
您不应该直接调用生命周期回调。
finish()