我有一个应用程序,有活动(称为MyFirstActivity),onCreate是这样的:
MyView view;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game_sound_space);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.myMain);
view = new MyView(this, getPreferences(Context.MODE_PRIVATE), layout);
layout.addView(view, 0); // add view to the layout
}
视图是这样的(这是构造函数):
Context context;//I need to do context global for using in other methods
public MyView(Context context,SharedPreferences sharedPreferences,
RelativeLayout parentLayout) {
super(context);
this.context = context;
}
显然在onResume方法的活动中我启动视图:
@Override
public void onResume(){
super.onResume();
view.loadGame();
}
loadGame()在我看来,它的工作原理很完美,但在某些观点上,我希望在整个游戏中再次重启,我用过:
Intent intent = new Intent(context.getApplicationContext(),MyFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
但是我怀疑这不是重启的正确方法(而且开始出错了) 还使用:
Intent intent = getIntent();
finish();
startActivity(intent);
这是不可能的,因为我在一个视图和context.finish()不起作用(不存在)
那么如何重新启动firstActivity(MyFirstActivity)以重启视图并使用此游戏?需要帮助,谢谢。