Android - activity 的完成速度非常慢
Android - Very slow finishing of an activity
我有一个关闭应用程序的“关闭”按钮。
我尝试了两种方法,但它们都很慢。
- 正在完成 activity:
activity.finish()
- 发送主页意图(来自 here)
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
如何更快地关闭 activity 或将其发送到后台?
为什么点击“主页”按钮 比发送 ACTION_MAIN
意图快 很多?
按 HOME 按钮将在当前 Activity
上呼叫 onPause()
。因此,它并没有完全关闭应用程序,而是暂停了它。
Ergo: 当然因为它保留了内存所以即使在启动时也快得多。
现在你知道如何暂停而不是关闭应用程序,如果你想有一个快速的方法。
如果你想关闭整个应用我建议使用finishAndRemoveTask();
Finishes all activities in this task and removes it from the recent
tasks list.
注意:BACK 如果您想使用其他方式,按钮将调用 onDestroy()
。尝试最适合您的用途。
代码示例
使用 Button
:
以编程方式关闭 HOME 按钮之类的应用程序,无需透明 View
Button close = findViewById(R.id.myCloseButton);
close.setOnClickListener(view -> {
finishAffinity();
});
我有一个关闭应用程序的“关闭”按钮。 我尝试了两种方法,但它们都很慢。
- 正在完成 activity:
activity.finish()
- 发送主页意图(来自 here)
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
如何更快地关闭 activity 或将其发送到后台?
为什么点击“主页”按钮 比发送 ACTION_MAIN
意图快 很多?
按 HOME 按钮将在当前 Activity
上呼叫 onPause()
。因此,它并没有完全关闭应用程序,而是暂停了它。
Ergo: 当然因为它保留了内存所以即使在启动时也快得多。
现在你知道如何暂停而不是关闭应用程序,如果你想有一个快速的方法。
如果你想关闭整个应用我建议使用finishAndRemoveTask();
Finishes all activities in this task and removes it from the recent tasks list.
注意:BACK 如果您想使用其他方式,按钮将调用 onDestroy()
。尝试最适合您的用途。
代码示例
使用 Button
:
View
Button close = findViewById(R.id.myCloseButton);
close.setOnClickListener(view -> {
finishAffinity();
});