Android 如何返回到起始活动

Android 如何返回到起始活动,android,android-activity,Android,Android Activity,我正在编写一个简单的游戏,玩完之后,玩家会看到一个记分屏幕,上面写着分数。现在,我希望玩家有一个“返回主屏幕”按钮,将他带到主要活动,即StartActivity 我尝试了以下代码(见下文),但它不起作用。我做错了什么 public class ScoreActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState

我正在编写一个简单的游戏,玩完之后,玩家会看到一个记分屏幕,上面写着分数。现在,我希望玩家有一个“返回主屏幕”按钮,将他带到主要活动,即
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);
    }

}

调用
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);
    }

现在,您正在启动“活动”,按“上一步”后,应用程序将退出,创建一种方法,如下所示:

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(),尝试以这种方式工作

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

你的意思是要清除堆栈中的所有活动并从startActivity.class重新启动应用程序?你必须使用startActivityForResult()而不是startActivity()…是的,这就是我的意思当我尝试时,eclipse在activity.startActivity(mainIntent)上显示错误;你需要将android-support.jar放在你的libs文件夹中你正在使用哪个版本?好的,删除活动有问题,所以我需要删除这个活动,然后。。。?