我想用onResume()方法重新启动一个活动.我以为我可以使用Intent来实现它,但这会以无限循环结束.
@Override protected void onResume() { Intent intent = new Intent(MainActivity.this,MainActivity.class); MainActivity.this.startActivity(intent); finish(); super.onResume(); }
还有另一种重启活动的方法吗?
解决方法
我会问你为什么要这样做……但这是我脑海里浮现的第一件事:
@Override protected void onCreate(Bundle savedInstanceState) { ... Log.v("Example","onCreate"); getIntent().setAction("Already created"); } @Override protected void onResume() { Log.v("Example","onResume"); String action = getIntent().getAction(); // Prevent endless loop by adding a unique action,don't restart if action is present if(action == null || !action.equals("Already created")) { Log.v("Example","Force restart"); Intent intent = new Intent(this,Example.class); startActivity(intent); finish(); } // Remove the unique action so the next time onResume is called it will restart else getIntent().setAction(null); super.onResume(); }
您应该使“已创建”成为唯一,以便其他任何意图都不会意外地执行此操作.