我应该在去另一个活动之前总是完成一项活动吗?

san*_*one 6 android dialog activity-finish android-activity

finish()在去另一项活动之前,你总是打电话给某些活动吗?

例如,为了防止用户通过移动后退按钮进入上一个活动,有些人建议您应该完成除主要活动之外的所有活动.这样,后退按钮总是返回主活动(或您认为应该导航用户的任何其他活动).这是通过覆盖后退按钮行为来完成的.

不好的事情是当Handler运行一个对话框,试图在活动结束后运行(http://dimitar.me/android-displaying-dialogs-from-background-threads/).

你对这个问题的经验法则是什么?finish()以更智能的方式拨打电话或覆盖后退按钮,将用户引导至您选择的页面?

Luk*_*uth 5

如果您了解 Android 应用程序的工作流程,则不需要覆盖后退按钮(例如游戏等特殊情况除外)。

如果您不希望用户返回上一个 Activity,请完成它。应该没有必要为此覆盖后退按钮。

public class Activity1 extends Activity{

    // Some onclick-Handler
    public void onButtonClick(View v){
        Intent i = new Intent(this, Activity2.class);
        this.startActivity(i);
        // Don't want you to return:
        this.finish();
    }
}
Run Code Online (Sandbox Code Playgroud)