Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何重用活动?不要每次都创建活动_Android - Fatal编程技术网

Android 如何重用活动?不要每次都创建活动

Android 如何重用活动?不要每次都创建活动,android,Android,本主题是本主题的继续: 我读到当点击后退按钮时,活动被破坏。 当移动到堆栈的更深处然后调用活动时,它们不会被破坏。例如,使用android:launchMode=“singleTask” 当我单击“后退”按钮并再次运行“活动”时,活动是否可能不会被销毁?您可以重新定义活动的“返回”方法,例如 public void onBackPressed () { moveTaskToBack (true); } 后退按钮的默认实现是完成当前活动。但是,您可以截取该按键并使用它执行任何您希望的

本主题是本主题的继续:

我读到当点击后退按钮时,活动被破坏。 当移动到堆栈的更深处然后调用活动时,它们不会被破坏。例如,使用android:launchMode=“singleTask”

当我单击“后退”按钮并再次运行“活动”时,活动是否可能不会被销毁?

您可以重新定义活动的“返回”方法,例如

public void onBackPressed () 
{
    moveTaskToBack (true);
}

后退按钮的默认实现是完成当前活动。但是,您可以截取该按键并使用它执行任何您希望的操作。例如,不必完成当前的活动,您可以“启动”上一个活动,从而使其看起来好像正常的实现就在眼前

要截取后退按钮,请按:

以及在每次不创建新活动的情况下开始以前的活动:

Intent i = new Intent(this, PreviousActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
在Kotlin 1.2中:

val intent = Intent(this, RepairListActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
startActivity(intent)

祝你好运。

我不建议这样做,因为用户可以选择按home按钮(如果应用程序需要内存,android会杀死它)。由于这样的决定,用户开始使用任务杀手,这是一个混乱(在我看来)。然后开发人员正努力使他们的应用程序正常工作,因为用户正在被任务杀手杀死他的应用程序。。。不要搞乱android的生命周期;-)你为什么要这么做?I.想不出一个好处。一个好处是,如果活动布局很复杂,需要10秒才能加载,那么可以通过重用活动节省这10秒,而不必从头开始创建活动。我发现这个答案很有用,但要提醒毫无戒心的开发人员:当您需要上下文时,除非您知道自己在做什么,否则请不要使用应用程序上下文。在这种情况下,您只需传递
这个
(当前活动实例),而不是应用程序上下文。