android - 尝试从本身无法重新加载Android Activity

标签 android crash recreate

我的问题是:我想不出一种方法来重新启动自己的 Activity 。例如,在游戏中,如果您死了,那么会有一个带有重试选项的菜单,该菜单会立即重新启动舞台。确实是这样。

正如我从其他许多人那里得到的关于该问题的答案中所读到的,有2种主要方法可以重新加载 Activity :

1- finish(); startActivity(getIntent());
2- recreate();
第一种方法似乎对我不起作用,因为它重新启动了 Activity ,但是将先前创建的方法留在了堆栈的背面。看起来finish()语句没有做任何事情。我尝试过将它放在前面,后面和所有方式中,但是它永远不会关闭剩下的 Activity 。

另一方面,选项编号2不能从UI线程外部调用(据我所知),如果我这样做,则应用程序崩溃。我试图使用以下方法调用recreate方法:

    Activity.this.runOnUiThread(new Runnable() {
        public void run() {
            recreate();
        }
    });

但是这种方法使我的屏幕闪烁得非常糟糕。黑屏突然出现,这似乎不正确。

最佳答案

尝试这个:

    Intent intent = getActivity().getIntent();
    getActivity().finish();
    startActivity(intent);

关于android - 尝试从本身无法重新加载Android Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008341/

相关文章:

android - recreate() 可以给一个过渡动画吗?

android - 如何通过 Activity 或服务强制连接到 a2dp 蓝牙设备

android - 如何将数据从android发送到用java制作的google app engine web应用程序

android - 尝试打开自定义对话框时,ViewAnimationUtils.createCircularReveal崩溃

api 7 中的 Android recreate() 函数

android - 阻止 Android 重新创建已经存在的 Activity

android - 如何在 SurfaceView 上实现项目触摸

android - 获取简体中文的语言环境变体

asp.net - ASP.NET中的浏览器崩溃事件

即使在堆上,C++ 程序也会因数组过大而崩溃