我正在编写一个简单的游戏,并且在玩完之后,玩家会看到一个分数屏幕,其中点数被写入。现在,我希望玩家有一个"返回主屏幕"将他带到主要活动的按钮,即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);
}
}
答案 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
答案 2 :(得分:0)
尝试像魅力一样工作
Intent intent = new Intent(ScoreActivity.this, StartActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
startActivity(mainIntent);