0

我有一MainActivity堂课,它会RaceActivity在某个时候启动。如果稍后RaceActivity退出,我希望MainActivity返回,以及它的所有视图。但是,它似乎每次都重新创建。我已经实现了 的正确部分onOptionsItemSelected,但是当我单击后退按钮时,我每次都会得到一个新实例,或者至少以编程方式添加的视图都消失了。我能做些什么来解决这个问题?

编辑澄清:

我很好地将 onCreate 与捆绑一起使用来恢复这些视图,但我认为如果您重新创建对象的相同实例,这会自动发生。我想在重新创建活动时保留以编程方式创建的视图。或者,我希望活动在用户返回时停止被破坏。(我测试过,一旦使用返回它就会被销毁。)

4

2 回答 2

0

如果对您有帮助,请接受我的回答。需要几个小时才能找到解决方案..

覆盖 onBackPressed()

Intent intent = new Intent(FromAnyActivity.this, CurrentActivity.class);

            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

            startActivity(intent);

并在其中插入代码。它会从堆栈中重新排序您的活动,您的视图和数据将保持在原来的位置。通过添加SingleInstance 启动模式还有另一种方法..阅读这些链接可能会有所帮助..

于 2014-06-17T14:05:26.623 回答
-2

将以下内容添加到 AndroidManifest 文件中的 MainActivity 声明中:

android:launchMode="singleTask"

根据 Android API,此添加是为了:“系统在新任务的根目录创建 Activity 并将 Intent 路由到它。但是,如果 Activity 的实例已经存在,系统会将 Intent 路由到现有实例通过调用它的 onNewIntent() 方法,而不是创建一个新方法。”

如果上述方法不起作用,我相信您也可以尝试将其添加到 AndroidManifest 文件中的 MainActivity 中:

android:alwaysRetainTaskState="true"

根据 Android API,此添加是为了:“活动所在的任务的状态是否将始终由系统维护——如果是,则为“true”,如果系统允许,则为“false”在某些情况下将任务重置为其初始状态。默认值为“false”。此属性仅对任务的根活动有意义;对所有其他活动都将被忽略。

于 2013-08-26T03:02:50.080 回答