我写了一个Android应用程序。
所以,这就是:
我有一个列表视图,如果用户点击特定行,则会调用以下代码来创建活动:
Intent intent = new Intent();
intent.setClassName( getPackageName(), getPackageName() + ".matchView.MatchViewActivity" );
intent.putExtra("leagueId", leagueId );
startActivity( intent );
然后活动开始,我们假设用户通过点击后退按钮返回列表视图
然而,问题在于,当我启动活动并使用后退按钮返回时,(现在旧的)活动未被释放。它仍然在后台运行,如果用户再次点击同一个单元格,则再次启动相同的活动,导致相同的活动运行2,3,4个等等(取决于用户点击的频率)。
因此,如果用户点击后退按钮,我如何确保我开始的活动被正确删除或结束?
答案 0 :(得分:1)
Activity
将被系统自动删除(当您返回时)。
更好地了解activities和back stack
答案 1 :(得分:1)
如果您不想再使用Activity
,请回答您的问题,正确的方法是致电finish()
。
这告诉Android SO您不想再次使用它,但不要指望它立即完成。 Android在完成后的一段时间内保留了对实例和活动(这些也是实例)的引用,如果用户在短时间内重新打开该活动,它恢复得更快。
如果您担心重新打开活动的状态,可以强制每次重新打开活动时重新启动活动。您可以在Intent
参考页中找到更多参考文献,尤其是FLAG_ACTIVITY_CLEAR_TOP
flag。
答案 2 :(得分:0)
您可以在清单中根据" launchMode"定义活动的启动方式,您可以从四种启动模式中选择一种:
听起来你想要使用," singleTask"或者" singleInstance",您可以在" android:launchMode"下阅读更多信息。部分:
http://developer.android.com/guide/topics/manifest/activity-element.html
答案 3 :(得分:0)
添加完成();在启动新活动后删除当前活动。