Android刷新当前活动

And*_*hef 59 android

我想编程我的Android应用程序来刷新它在ButtonClick上的当前活动.我在活动布局的顶部有一个按钮可以完成这项工作.当我点击按钮时,当前活动应该重新加载 - 就像设备重启一样.

谢谢

Otr*_*tra 122

public void onClick (View v){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

  • `intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);` (47认同)

gre*_*561 37

你可以试试这个

finish();
startActivity(getIntent());
Run Code Online (Sandbox Code Playgroud)

之前曾问过这个问题: 如何重新启动Android活动


Sud*_*ara 25

在活动中,您可以调用recreate()"重新创建"活动(API 11+)


小智 12

这是一个刷新按钮方法,但它在我的应用程序中运行良好.在finish()中你杀了实例

public void refresh(View view){          //refresh is onClick name given to the button
    onRestart();
}

@Override
protected void onRestart() {

    // TODO Auto-generated method stub
    super.onRestart();
    Intent i = new Intent(lala.this, lala.class);  //your class
    startActivity(i);
    finish();

}
Run Code Online (Sandbox Code Playgroud)


Wil*_*iem 9

这就是我在这里看到的效果.

只需使用它或将其添加到静态类助手,只需从项目中的任何一个调用它.

/**
Current Activity instance will go through its lifecycle to onDestroy() and a new instance then created after it.
*/
@SuppressLint("NewApi")
  public static final void recreateActivityCompat(final Activity a) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      a.recreate();
    } else {
      final Intent intent = a.getIntent();
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
      a.finish();
      a.overridePendingTransition(0, 0);
      a.startActivity(intent);
      a.overridePendingTransition(0, 0);
   }
}
Run Code Online (Sandbox Code Playgroud)