重新使用Activity,而无需重新创建它

时间:2017-06-15 19:23:31

标签: android android-fragments android-intent

我正在为学校制作Android应用。

第一个活动是学生,其中包含一个由3个碎片组成的ViewPager。加载此活动的成本很高,因为它包含3个碎片。

第1片段包含游戏列表视图

2nd Fragment包含一个漫画列表视图

第3个片段包含TestView的ListView(ListView仅包含测试标题)。

现在在测试片段onClick on of test(在listview中显示),一个新的 ShowTest 活动打开,显示完整的测试。

每件事情都很好。

这是TestFragment中用于启动ShowTest Activity

的代码
test.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent it = new Intent(getActivity(), ShowTest.class);
            startActivity(it);
        }
    });

在ShowTest Activity中,我只是调用finish();

public void onBackPressed() {
    this.finish();
}

但是在 ShowTest 中,当onBackpressed()被调用学生时,活动会重新创建(片段中的所有内容都会重新加载)。我不希望第二次创建此活动。因为加载费用很高。

这两个链接对我没有帮助

Open Info Activity without closing Main Activity

Android - Relaunching an activity without having to re-create it

我们将非常感谢您的帮助。

谢谢(编辑)

3 个答案:

答案 0 :(得分:0)

您可能在其他活动开始时调用finish()。不要调用它并在没有完成()的情况下启动活动。

答案 1 :(得分:0)

抱歉,我的错误

在Android Manifest中

<activity
    android:name="plan9.naseemdev.muhammadtaimoor.naseem.Student"
    android:configChanges="orientation|screenSize"
    android:noHistory="true" />

由于&#39; 机器人:noHistory =&#34;真&#34; &#39; 学生活动每次都在重新创造。 删除此行后,它对我有效。

答案 2 :(得分:-2)

分享您的代码,以便我可以进一步提供帮助。 另外请检查您是否正确初始化了寻呼机适配器。