finish() 没有按预期工作
finish() not working as expected
当我创建一个 android 应用程序时,我首先在其中创建了 main activity,然后我添加了 splash activity 以及一个正常的 activity.
所以我的问题是每当我在我的应用程序中点击退出它关闭 main activity 和 returns 那 一个正常的 activity in splash activity.
我在主要 activity.
中的退出按钮上使用 finish();
那么如何退出 到 android 启动器屏幕
的应用程序
我也尝试过使用 Action Main 创建 new intent 但它只是 最小化应用程序 我要关闭它
MainActivity.class
if (id == R.id.exit) {
AlertDialog.Builder builder = new AlertDialog.Builder(homeActivity.this);
builder.setMessage("Do You Want To Exit?").setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.setIcon(R.drawable.ic_error_outline_black_24dp);
alert.setTitle("Exit!!");
alert.show();
}
您可以设置 android:excludeFromRecents="true"
和 android:noHistory="true"
在你 android Manifest
启动文件 activity.
尝试在从 SplashScreenActivity
启动 MainActivity
时添加标志 "Intent.FLAG_ACTIVITY_CLEAR_TOP"
,如下所示:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
从 SplashActivity
启动 MainAcitivity
时,在意图中设置标志如下,并在 SplashAcitivty
上调用 finish()
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
在将 splash 导航到 mainActivity 时在 splash 中添加这些东西
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
finish();
当我创建一个 android 应用程序时,我首先在其中创建了 main activity,然后我添加了 splash activity 以及一个正常的 activity.
所以我的问题是每当我在我的应用程序中点击退出它关闭 main activity 和 returns 那 一个正常的 activity in splash activity. 我在主要 activity.
中的退出按钮上使用finish();
那么如何退出 到 android 启动器屏幕
的应用程序我也尝试过使用 Action Main 创建 new intent 但它只是 最小化应用程序 我要关闭它
MainActivity.class
if (id == R.id.exit) {
AlertDialog.Builder builder = new AlertDialog.Builder(homeActivity.this);
builder.setMessage("Do You Want To Exit?").setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.setIcon(R.drawable.ic_error_outline_black_24dp);
alert.setTitle("Exit!!");
alert.show();
}
您可以设置 android:excludeFromRecents="true"
和 android:noHistory="true"
在你 android Manifest
启动文件 activity.
尝试在从 SplashScreenActivity
启动 MainActivity
时添加标志 "Intent.FLAG_ACTIVITY_CLEAR_TOP"
,如下所示:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
从 SplashActivity
启动 MainAcitivity
时,在意图中设置标志如下,并在 SplashAcitivty
finish()
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
在将 splash 导航到 mainActivity 时在 splash 中添加这些东西
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
finish();