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

时间:2014-04-23 04:13:59

标签: android android-intent

我的主要活动是

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类中的按钮时重新启动,我该怎么办,我遇到了this并尝试过但没有任何工作< / p>

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); 


        }};

3 个答案:

答案 0 :(得分:3)

可能recreate()可以帮助你..

答案 1 :(得分:2)

如果这是主要活动,您可以使用以下方法重新启动应用程序:

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();
}

restartSelf()致电onClick()

@Override
public void onClick(View v) {
    restartSelf();
}

这将在按一下按钮后重新启动您的应用。 希望这会有所帮助。

答案 2 :(得分:0)

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

因为Android应用程序的生命周期是堆栈。和活动活动,你不能一次关闭所有活动。 Read thisthis.