Android 单击按钮重新启动/刷新整个应用程序

Android 单击按钮重新启动/刷新整个应用程序,android,android-intent,Android,Android Intent,我的主要活动是 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyGame(this)); } @Override public boolea

我的主要活动是

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyGame(this));
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
在Mygame类中,当所有内容都在我的游戏类中时,我希望整个应用程序在点击Mygame类中的按钮后重新启动,我如何才能做到这一点,我偶然发现并尝试了它,但没有任何效果

OnClickListener retryClicklistener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

//          Intent i = getContext().getPackageManager()
//                   .getLaunchIntentForPackage(getContext().getPackageName() );
//                   
//                   i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
//              //   startActivity( MyGameLongClick);
//          Intent startActivity = new Intent();
//          startActivity.setClass(this,OTHER_ACTIVITY.class);
//          startActivity(startActivity); 


        }};

可能是
重新创建()
可以帮你解决问题。

我认为你不能这样做。您不能重新启动活动而不是整个应用程序


因为android应用程序的生命周期是堆叠的。活动对活动您不能一次关闭所有活动。如果这是主要活动,您可以使用以下方法重新启动应用程序:

private void restartSelf() {
    AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis() + 1000, // one second
            PendingIntent.getActivity(this, 0, getIntent(), PendingIntent.FLAG_ONE_SHOT
                    | PendingIntent.FLAG_CANCEL_CURRENT));
    finish();
}
并从
onClick()
调用
restartSelf()

这将在按下按钮一秒钟后重新启动应用程序。
希望这有帮助。

我想使用OnRestart(){onCreate()}bt不起作用我如何从MyGame Classis使用它您的MyGame类扩展活动??通过传递抛出方法并调用Activity来获取活动的引用。重新创建()MainActivity myActivity=(MainActivity)getContext();myActivity.recreate();
@Override
public void onClick(View v) {
    restartSelf();
}