1

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

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 的链接 - 这是不受欢迎的吗?但我是新人,所以没有得到太多。请建议我如何处理这个问题。

4

1 回答 1

1

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

欢迎您发表意见。startActivityForResult()不是为您如何使用它而设计的。

在单击按钮或电话后退按钮时,我使用了以下代码

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

请遵循Android 设计指南以正确处理 BACK 按钮- 虽然我不同意其中的所有内容,但它比您所做的要好得多。在用户眼中,BACK 意味着返回

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

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

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

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

于 2012-05-03T17:00:18.210 回答