活动完成后返回主屏幕

时间:2013-03-08 06:27:19

标签: android android-activity homescreen

我有一个活动,一直发出哔哔声,直到用户点击按钮为止。 单击该按钮,将显示一条消息。显示消息后,我不希望用户按下后退按钮退出,而是希望我的活动自己退出主屏幕。

finish()方法是否这样做?如果是,我应该如何以及在何处实施它?

任何形式的帮助将不胜感激。感谢

5 个答案:

答案 0 :(得分:8)

    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

答案 1 :(得分:1)

在所有活动中应用finish()方法。活动结束后,它将返回主屏幕。

答案 2 :(得分:1)

案例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);

    }

答案 3 :(得分:1)

假设您将消息显示为alertdialog,请在按下finish()按钮时拨打alertdialog

如果您在显示Toast()后按下按钮finish()使用Toast()

答案 4 :(得分:0)

您可以在按钮finish()上应用onClick()方法,在startActivity()通话后,您可以应用完成方法,如下所示。

startActivity(intent obj);
finish();