如何返回开始活动

时间:2014-05-01 12:30:58

标签: android android-activity

我正在编写一个简单的游戏,并且在玩完之后,玩家会看到一个分数屏幕,其中点数被写入。现在,我希望玩家有一个"返回主屏幕"将他带到主要活动的按钮,即StartActivity

我尝试了以下代码(见下文),但它不起作用。我做错了什么?

public class ScoreActivity extends Activity implements OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_score);
        Button button = (Button)findViewById (R.id.startbutton);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(ScoreActivity.this, StartActivity.class);
        ComponentName cn = intent.getComponent();
        Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
        startActivity(mainIntent);
    }

}

3 个答案:

答案 0 :(得分:0)

在致电flags

时添加以下intent
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

所以这将删除之前的后台堆栈,现在你使用它。

@Override
    public void onClick(View v) {
        Intent mIntent = new Intent(ScoreActivity.this, StartActivity.class)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(mIntent);
    }

现在您正在开始活动,当按下然后应用程序退出

答案 1 :(得分:0)

创建一个方法如下:

public void startIntentClearingStack(Context context, Intent in) {
        in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        if (Build.VERSION.SDK_INT > 10) {
            in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        }
        context.startActivity(in);
    }

首先调用此方法&然后为MainActivity

调用startActivity()

答案 2 :(得分:0)

尝试像魅力一样工作

Intent intent = new Intent(ScoreActivity.this, StartActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
startActivity(mainIntent);