Android 按下后退键时触发活动

Android 按下后退键时触发活动,android,android-activity,listactivity,Android,Android Activity,Listactivity,当我按back键到某个时间时,没有对活动执行任何操作。没有代码返回来处理我的活动中的返回键。当用户单击列表项时,我正在启动一项活动。像 Intent intent = new Intent(cxt, MyActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 实际情况是,当用户立即单击三次时,我的活动会启动多次。我如何避免多次启动活动。 我不能使用single instanc

当我按back键到某个时间时,没有对活动执行任何操作。没有代码返回来处理我的活动中的返回键。当用户单击列表项时,我正在启动一项活动。像

Intent intent = new Intent(cxt, MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
实际情况是,当用户立即单击三次时,我的活动会启动多次。我如何避免多次启动活动。
我不能使用single instance/singleton,因为每次启动活动时都应该调用我的
OnCreate

我假设您在一个活动生命周期回调中进行了大量处理,在这种情况下,Android会调用该回调来销毁您的活动。

您仍然可以使用singleInstance并重写onNewIntent方法将被调用在每一次活动中,或者在处理程序的方法中分离昂贵的操作。

决定你是否在活动本身之外开始一个活动,并考虑在那里检查条件。您可以根据条件将参数传递给您的新意图


这是一个问题:

不是设置一个旗子最简单吗?在OnCalk中有很多事情是基于条件发生的,保持标志可能会混淆我的代码,决定你是否在活动之外开始一个活动,并考虑在那里检查条件。你可以根据条件将结果传递给你的新意向。感谢你的新观点。我如何根据条件传递结果给意向。请让我离开itI我同意,但我在关闭时正在清理。重点是我如何避免多次启动活动?当我多次启动活动时,oncreate会被调用两次。没有必要谈论onDestroy或任何其他callback@421按下列表项一次后,应禁用事件处理活动。然而,听起来你的应用程序需要重新设计——你不需要在主UI线程上进行大量计算。显示一个“请耐心”框并同时执行计算,我会说?我不是通过intent传递大量数据。我是在onResume()中执行大量操作;在此上下文中,谈论onResume毫无意义。在启动活动时,活动会像往常一样快速启动,问题是当用户频繁地按列表项时,会启动多个活动。如何避免这种情况。@421如我所说,您可以通过禁用事件处理活动(可能一次针对整个列表)来避免这种情况。因此,如果所有列表条目都有相同的事件侦听器,那么将有一个标志,指示某个条目已被“单击”,并且处理尚未完成。或者,如果这样的“单击”导致显示不同的活动,只需一次性禁用事件侦听器(在此活动实例中)。如果您有多个事件侦听器,问题是是否仍应允许您的用户“单击”另一个列表条目。