我的应用程序正常运行,当我继续进行一些新活动时,我将代码用作
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?,但我很新,所以没有太多。请告诉我一些如何解决这个问题的方法。
答案 0 :(得分:1)
我认为通过这种方式,活动的堆栈可能很清楚
欢迎您的意见。 startActivityForResult()
并非专为您的使用方式而设计。
点击按钮或手机后退按钮后,我使用了以下代码
我会解雇那些为我工作的人。
请关注Android design guidelines for proper handling of the BACK button - 虽然我不同意那里的所有内容,但它比你正在做的要好得多。在用户眼中,BACK means back。
但我的应用程序仍然在后台运行
只要您没有泄露任何线程或服务,您的进程就会运行,但它将消耗大量的CPU时间。 Android将在需要RAM时终止进程。这样,如果用户选择返回您的应用程序,或者您的应用程序中的其他内容需要运行(例如,AlarmManager
事件,广播Intent
),Android不必浪费CPU时间和电池生活分叉另一个过程。
请以某种方式告诉我如何解决这个问题。
单独离开这个过程,没有人会受伤。