我的问题是:我想不出一种从自身重新开始活动的方法。例如,在游戏中,如果你死了,会有一个带有重试选项的菜单,它会立即重新启动关卡。情况正是如此。
正如我从很多其他关于这个问题的答案中读到的那样,重新加载活动有两种主要方法:
1-finish();
startActivity(getIntent());
2-recreate();
第一种方法似乎对我不起作用,因为它重新启动了活动,但在我的堆栈后面保留了前一个创建的活动。看起来 finish() 语句没有做它的事情。我试图把它放在前面,后面和各种方式,但它永远不会关闭留下的活动。
另一方面,不能从 UI 线程外部调用(据我所知)选项编号 2,如果这样做,应用程序将崩溃。我尝试使用以下方法调用重新创建方法:
Activity.this.runOnUiThread(new Runnable() {
public void run() {
recreate();
}
});
但是这种方法让我在屏幕上闪烁得很厉害。突然出现一个黑屏,看起来不太对劲。