【问题标题】:How can i close my app which is still running in background after closing如何关闭关闭后仍在后台运行的应用程序
【发布时间】:2012-05-03 15:57:25
【问题描述】:

我的应用程序运行正常,当我进行一些新活动时,我使用代码作为

Intent start=new Intent(current activity.this,new activity.class);
                startActivityForResult(start, 0);
                finish(); 

然后当我不得不回到之前的活动时,我使用了以下代码

Intent start = new Intent(current activity.this,earlier activity.class);
                    startActivity(start);
                    finishActivity(0);

我认为通过这种方式,活动的堆栈可能会很清晰。在点击按钮或手机后退按钮时,我使用了以下代码

Intent startMain = new Intent(Intent.ACTION_MAIN);
                startMain.addCategory(Intent.CATEGORY_HOME);
                startMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(startMain);

但我的应用程序仍在后台运行。我还使用了android:noHistory="true" 应用程序从后台被杀死,但消息显示该应用程序强制关闭。简单的finish(); 移动到最后一个活动。 我还看到了链接Quitting an application - is that frowned upon?,但我是新手,所以没有得到太多。请建议我如何处理这个问题。

【问题讨论】:

  • 您是否有理由想搞乱可恢复的tasks 和自动管理的应用程序生命周期的整个概念?
  • 我总共有 8 个活动,并且控制从一个转移到另一个。没有什么特别的原因。

标签: android android-activity activity-lifecycle


【解决方案1】:

我觉得这样一来activity的栈可能就清晰了

欢迎您发表意见。 startActivityForResult() 并非针对您的使用方式而设计。

点击按钮或手机后退按钮时,我使用了以下代码

我会解雇任何为我工作的人。

请关注Android design guidelines for proper handling of the BACK button -- 虽然我不同意其中的所有内容,但它比您所做的要好得多。在用户眼中,BACK means back

但我的应用程序仍在后台运行

只要您没有泄漏任何线程或服务,您的进程就会运行,但不会消耗大量 CPU 时间。 Android 将在需要 RAM 时终止进程。这样,如果用户选择返回您的应用程序,或者您的应用程序中的其他内容需要运行(例如,AlarmManager 事件,广播Intent),Android 不必浪费 CPU 时间和电池寿命来分叉另一个过程。

请建议我如何处理这个问题。

不要管这个过程,没有人会受到伤害。

【讨论】:

  • 将应用程序置于后台有什么缺点。那个应用当时在运行吗?
  • @BraveGirl:“那个应用程序当时正在运行吗?” - 这取决于您所说的“跑步”是什么意思。如果您有自己的后台线程仍在运行,它们将继续工作,因此找到停止这些线程的时间很重要。但是,除此之外,您的任何代码都不会执行。那么用户的主要成本就是您正在消耗的那块 RAM,Android 将在您的进程更好地使用该 RAM 时终止您的进程。
  • 是的,我在我的应用程序中为计时器使用了一个线程,那么我该如何停止该线程。你能告诉我如何正确停止这些线程。运行意味着它在后台,我从任务管理器中检查了它。
  • @BraveGirl:“是的,我在我的应用程序中为计时器使用了一个线程,那么我该如何停止该线程。” -- 我无法告诉您如何 停止该线程,因为我不知道您的线程是如何设置的。有很多关于 Java 线程模型的书籍。 何时停止该线程将是当用户退出您的应用程序时,或者当您的应用程序移动到后台时(请参阅onUserLeaveHint())。
猜你喜欢
  • 2011-04-02
  • 2021-05-17
  • 2021-04-20
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多