android如何在视图中重启我的活动?

时间:2013-10-08 00:46:13

标签: android

我有一个应用程序,有活动(称为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)以重启视图并使用此游戏?需要帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您应该按照逻辑来处理重启视图。您可以使用某些动画执行removeView,然后使用addView执行loadGame。这将产生重启效果。