在Android中更改活动时是否有最佳做法?
对我来说这似乎很奇怪,只是做一个意图并一遍又一遍地开始另一项活动。
如果我刚开始另一项活动并完成最后一项活动,当我必须退回时,我需要加载所有的东西。但是当我不这样做时,在内存处理方面似乎不是正确的做法。
将所有活动保存在一种ActivitiesPool或类似的东西中是否正确?或者我总是要在保持打开或重新加载之间做出选择?
任何指示?
由于
答案 0 :(得分:1)
对我来说这似乎很奇怪,只是制作一个意图并开始另一个活动而且已经过了
这就是它在Android上的运作方式。更准确地说,我们(作为开发人员)系统甚至不允许new Activity()
只调用startActivity(intent);
我需要加载所有的东西
再次,框架负责根据需要加载/卸载资源
将所有活动保存在一种ActivitiesPool
中是否正确
不,这不正确,请勿触摸它们。
如果您希望用户能够点击back
按钮并转到上一个活动,请不要在其上调用finish();
。您可以使用onPause()
/ onResume()
回调来处理后台操作,并且应该在@Override protected void onSaveInstanceState(Bundle outState)
回调中保存UI状态。您将所需的所有UI状态放在那里。如果系统需要内存,它将破坏活动,每当用户前往back
时,它将再次创建onCreate(Bundle savedInstances)
,然后您将保存所有的UI状态,以便您正确重新创建用户之前的状态。
这就是它的工作原理。