如何在关闭后关闭仍在后台运行的应用程序

时间:2012-05-03 15:57:25

标签: android android-activity activity-lifecycle

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

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?,但我很新,所以没有太多。请告诉我一些如何解决这个问题的方法。

1 个答案:

答案 0 :(得分:1)

  

我认为通过这种方式,活动的堆栈可能很清楚

欢迎您的意见。 startActivityForResult()并非专为您的使用方式而设计。

  

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

我会解雇那些为我工作的人。

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

  

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

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

  

请以某种方式告诉我如何解决这个问题。

单独离开这个过程,没有人会受伤。