在Android中重用活动以进行周期性应用

时间:2015-10-30 15:24:50

标签: android user-interface android-activity android-lifecycle memory-efficient

在我正在开发的Android应用程序中,它将以非常循环/循环的方式使用。基本上,有一个主屏幕显示了许多被跟踪实体的状态网格。

用户可以通过按下按钮启动一个过程,这会将他们带到一个新活动,在那里他们可以操纵网格项目。

完成后,它会返回主屏幕,更新网格以反映新的更改。在主屏幕的右侧,有一个即将到来的任务列表,用于操作网格,并在完成后进行检查。

现在,就目前而言,当你四处走动,检查这些任务,改变网格内容时,它只是在做越来越多的活动并将它们添加到堆栈中。

简单地重复使用这些活动的正确方法是什么,或者至少从堆栈中删除旧的活动以便它们可以从内存中释放出来并且“上一个”按钮无法回复它们?

我真的只是开始意图 - 我已经看到了这些标志,但只是刺穿了它们而无处可去。

Intent mainScreenIntent = new Intent(this, MainActivity.class);
startActivity(mainScreenIntent);

我确实有一个包含我的网格数据模型的单例,因此它们始终可访问且只创建一次。 GridViewAdapter存储在那里的对象中,因此也不会重新创建。只是活动。

2 个答案:

答案 0 :(得分:0)

Intent i = new Intent(MyOldActivity.this, MyNewActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(i);

使用此功能,以便从 堆栈历史记录 OldActivity 删除

答案 1 :(得分:0)

如果您想摆脱旧的Activity,请在开始新的finish()后调用旧版Activity上的Activity方法。

Intent mainScreenIntent = new Intent(this, MainActivity.class);
startActivity(mainScreenIntent);
finish();