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