Android:如何在主活动屏幕上按下后退按钮的情况下继续运行主活动

Android:如何在主活动屏幕上按下后退按钮的情况下继续运行主活动,android,Android,假设有两个活动A(主要活动)和B。如果我们按下活动a上的按钮,活动B开始,如果我们按下活动B上的后退按钮,活动a回来。然后,如果我们按下屏幕上的“后退”按钮,我们就会退出应用程序 我想问,有没有办法让主要活动保持活跃。例如,如果我们再次打开应用程序,则不应调用on create方法。然后我们返回到与按下后退按钮之前相同的主活动状态 例如,在音乐播放器应用程序中,当我们按下应用程序的“后退”按钮时,应用程序关闭,但音乐仍在播放,当我们再次打开应用程序时,音乐不会重新开始。表示不再调用onCreat

假设有两个活动A(主要活动)和B。如果我们按下活动a上的按钮,活动B开始,如果我们按下活动B上的后退按钮,活动a回来。然后,如果我们按下屏幕上的“后退”按钮,我们就会退出应用程序

我想问,有没有办法让主要活动保持活跃。例如,如果我们再次打开应用程序,则不应调用on create方法。然后我们返回到与按下后退按钮之前相同的主活动状态


例如,在音乐播放器应用程序中,当我们按下应用程序的“后退”按钮时,应用程序关闭,但音乐仍在播放,当我们再次打开应用程序时,音乐不会重新开始。表示不再调用onCreate方法

尝试重写onBackPressed()

复制品

onBackPressed()实际上在内部调用finish,因此通过覆盖它,您间接禁用finish()

如果你想显示另一个屏幕,那么

@Override
public void onBackPressed() {
     Intent itent = new Intent(this, MyHomeScreenActivity.class);
     startActivity(itent);
}
如果要将应用程序移动到后台,则需要覆盖onKeyDown()参考此


尝试覆盖onBackPressed()

复制品

onBackPressed()实际上在内部调用finish,因此通过覆盖它,您间接禁用finish()

如果你想显示另一个屏幕,那么

@Override
public void onBackPressed() {
     Intent itent = new Intent(this, MyHomeScreenActivity.class);
     startActivity(itent);
}
如果要将应用程序移动到后台,则需要覆盖onKeyDown()参考此


尝试覆盖onBackPressed()

复制品

onBackPressed()实际上在内部调用finish,因此通过覆盖它,您间接禁用finish()

如果你想显示另一个屏幕,那么

@Override
public void onBackPressed() {
     Intent itent = new Intent(this, MyHomeScreenActivity.class);
     startActivity(itent);
}
如果要将应用程序移动到后台,则需要覆盖onKeyDown()参考此


尝试覆盖onBackPressed()

复制品

onBackPressed()实际上在内部调用finish,因此通过覆盖它,您间接禁用finish()

如果你想显示另一个屏幕,那么

@Override
public void onBackPressed() {
     Intent itent = new Intent(this, MyHomeScreenActivity.class);
     startActivity(itent);
}
如果要将应用程序移动到后台,则需要覆盖onKeyDown()参考此


我建议你读这本书。您要做的只是在另一个活动上启动一个活动,而不调用finish函数

要执行此操作,请按如下所示越过onBackPressed功能

@Override
public void onBackPressed()
{
     Intent intent = new Intent(this, BActivity.class);
     startActivity(intent);
     super.onBackPressed();  // optional depending on your needs
}

我建议你读这本书。您要做的只是在另一个活动上启动一个活动,而不调用finish函数

要执行此操作,请按如下所示越过onBackPressed功能

@Override
public void onBackPressed()
{
     Intent intent = new Intent(this, BActivity.class);
     startActivity(intent);
     super.onBackPressed();  // optional depending on your needs
}

我建议你读这本书。您要做的只是在另一个活动上启动一个活动,而不调用finish函数

要执行此操作,请按如下所示越过onBackPressed功能

@Override
public void onBackPressed()
{
     Intent intent = new Intent(this, BActivity.class);
     startActivity(intent);
     super.onBackPressed();  // optional depending on your needs
}

我建议你读这本书。您要做的只是在另一个活动上启动一个活动,而不调用finish函数

要执行此操作,请按如下所示越过onBackPressed功能

@Override
public void onBackPressed()
{
     Intent intent = new Intent(this, BActivity.class);
     startActivity(intent);
     super.onBackPressed();  // optional depending on your needs
}

当您想按下后退按钮时,必须执行ON后退按钮

@Override
public void onBackPressed() {
     //here you can call super.onBackPressed() with some condition
}
 @Override
 public void onBackPressed() {
 //here you can call super.onBackPressed() with your require code
}

当您想按下后退按钮时,必须执行ON后退按钮

@Override
public void onBackPressed() {
     //here you can call super.onBackPressed() with some condition
}
 @Override
 public void onBackPressed() {
 //here you can call super.onBackPressed() with your require code
}

当您想按下后退按钮时,必须执行ON后退按钮

@Override
public void onBackPressed() {
     //here you can call super.onBackPressed() with some condition
}
 @Override
 public void onBackPressed() {
 //here you can call super.onBackPressed() with your require code
}

当您想按下后退按钮时,必须执行ON后退按钮

@Override
public void onBackPressed() {
     //here you can call super.onBackPressed() with some condition
}
 @Override
 public void onBackPressed() {
 //here you can call super.onBackPressed() with your require code
}

我刚刚看了你的评论,根据你在那里提到的要求,该应用程序应该从按下“后退”按钮的“主要活动”启动主屏幕,保持主要活动仍处于活动状态,你可以编写以下代码:

public void onBackPressed() {
     Intent mainActivity = new Intent(Intent.ACTION_MAIN);
     mainActivity.addCategory(Intent.CATEGORY_HOME);
     mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(mainActivity);
 }

此代码将从按下“后退问题”按钮中的主活动或活动A启动主屏幕,保持主活动仍处于活动状态

我刚刚查看了您的评论,根据您在此处提到的要求,该应用程序将从按下“后退问题”按钮的主活动启动主屏幕,保持主活动仍处于活动状态,可以编写以下代码:

public void onBackPressed() {
     Intent mainActivity = new Intent(Intent.ACTION_MAIN);
     mainActivity.addCategory(Intent.CATEGORY_HOME);
     mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(mainActivity);
 }

此代码将从按下“后退问题”按钮中的主活动或活动A启动主屏幕,保持主活动仍处于活动状态

我刚刚查看了您的评论,根据您在此处提到的要求,该应用程序将从按下“后退问题”按钮的主活动启动主屏幕,保持主活动仍处于活动状态,可以编写以下代码:

public void onBackPressed() {
     Intent mainActivity = new Intent(Intent.ACTION_MAIN);
     mainActivity.addCategory(Intent.CATEGORY_HOME);
     mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(mainActivity);
 }

此代码将从按下“后退问题”按钮中的主活动或活动A启动主屏幕,保持主活动仍处于活动状态

我刚刚查看了您的评论,根据您在此处提到的要求,该应用程序将从按下“后退问题”按钮的主活动启动主屏幕,保持主活动仍处于活动状态,可以编写以下代码:

public void onBackPressed() {
     Intent mainActivity = new Intent(Intent.ACTION_MAIN);
     mainActivity.addCategory(Intent.CATEGORY_HOME);
     mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(mainActivity);
 }

此代码将从按下“返回问题”按钮的主活动或活动A启动主屏幕,使主活动保持活动状态

在音乐播放器应用程序中,他们使用服务

您应该将其用于在后台运行的应用程序

我建议您仔细阅读本教程

本教程分为三个部分。它很好地描述了如何使用服务和AIDL实现android音频播放器


另请看本android开发者教程。

在音乐播放器应用程序中,他们使用服务

您应该将其用于在后台运行的应用程序

我建议您仔细阅读本教程

本教程分为三个部分。它很好地描述了如何使用服务和AIDL实现android音频播放器


另请看本android开发者教程。

在音乐播放器应用程序中,他们使用S