我的问题是:我无法找到一种从自身重启活动的方法。例如,在游戏中,如果你死了,就会有一个菜单,可以选择重试,立即重启舞台。情况确实如此。
正如我从很多其他人那里读到的关于这个问题的答案,有两种重新加载活动的主要方法:
1- finish();
startActivity(getIntent());
2- recreate();
第一种方法对我来说似乎不起作用,因为它重新启动了活动,但是在我的堆栈背面保留了先前创建的一个方法。貌似finish()语句没有做它的东西。我试图把它放在前面,后面和各种各样的方式,但它永远不会关闭留下的活动。
另一方面,从UI线程外部无法调用选项号2(据我所知),如果我这样做,应用程序崩溃了。我尝试使用:
调用recreate方法 Activity.this.runOnUiThread(new Runnable() {
public void run() {
recreate();
}
});
但是这种方法让我在屏幕上闪烁得非常糟糕。突然出现黑屏,这似乎不对。
答案 0 :(得分:3)
试试这个:
Intent intent = getActivity().getIntent();
getActivity().finish();
startActivity(intent);