我有一个 Activity 在用户单击按钮之前一直发出哔哔声。单击按钮时,它会显示一条消息。显示消息后,我希望我的活动自行退出到主屏幕,而不是用户按下后退按钮退出。
该finish()方法是否这样做?如果是,我应该如何以及在哪里实施它?
任何形式的帮助将不胜感激。谢谢
我有一个 Activity 在用户单击按钮之前一直发出哔哔声。单击按钮时,它会显示一条消息。显示消息后,我希望我的活动自行退出到主屏幕,而不是用户按下后退按钮退出。
该finish()方法是否这样做?如果是,我应该如何以及在哪里实施它?
任何形式的帮助将不胜感激。谢谢
    Intent i= new Intent("package.homescreenactivity");//homescreen of your app.
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(i);
    finish(); 
通过清除活动堆栈返回主屏幕。
要了解整个概念,我建议您查看此站点。http://developer.android.com/guide/components/tasks-and-back-stack.html。该站点讨论了活动回栈的工作原理。
更新:(2014 年 8 月 15 日)
清除 Backstack 可能不是一个好主意。请查看有效导航设计指南。
后退按钮应该带您回到上一个活动。
查看
http://developer.android.com/design/patterns/navigation.html
在所有活动中应用 finish() 方法。活动完成后,它将返回主屏幕。
案例1:对于按钮点击
public void onClick(View v) {
    // Show message here
    moveTaskToBack(true);
    }
案例2:如果你想让用户回家
public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
            alertbox.setTitle(res.getString("Title"));
            alertbox.setMessage(res.getString("Exit"));
            alertbox.setIcon(R.drawable.logo);
            alertbox.setPositiveButton(res.getString(R.string.Yes),
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                            exit();
                        }
                    });
            alertbox.setNeutralButton(res.getString(R.string.No),
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                        }
                    });
            alertbox.show();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    private void exit() {
        moveTaskToBack(true);
    }
假设您将消息显示为,请按下 按钮alertdialog调用。finish()alertdialog
如果您正在使用Toast()呼叫finish()按钮按下后Toast()显示。
您可以finish()在 Button 处应用方法,onClick()在startActivity()调用后您可以应用完成方法,如下所示。
startActivity(intent obj);
finish();