Android обновляет текущую активность

Я хочу запрограммировать приложение для Android, чтобы оно обновляло текущую активность на ButtonClick. У меня есть одна кнопка в верхней части макета активности, которая будет выполнять эту работу. Когда я нажимаю на кнопку, текущая активность должна перезагрузиться снова - как перезагрузка устройства.

Спасибо

14 ответов

public void onClick (View v){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

Вы можете попробовать это

finish();
startActivity(getIntent());

Этот вопрос был задан ранее: Как перезапустить активность Android

В деятельности вы можете позвонить recreate() "воссоздать" активность (API 11+)

Это метод обновления кнопки, но он хорошо работает в моем приложении. в 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();

}

Это то, что сработало для меня, как видно здесь.

Просто используйте его или добавьте в помощник статического класса и просто вызовите его из любого другого места в вашем проекте.

/**
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);
   }
}

Вы можете попробовать это:

        CookieSyncManager.createInstance(this);         
        CookieManager cookieManager = CookieManager.getInstance();        
        cookieManager.removeAllCookie();        
        Intent intent= new Intent(YourCurrent.this, YourCurrent.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

Он должен начаться снова и удалить все экземпляры предыдущего текущего действия.

Нет, не должно.

Он должен обновить свои данные на месте (например, requery() Cursor). Тогда не будет "экземпляров предыдущей текущей активности", о которых нужно беспокоиться.

Ты можешь использовать:

startActivity(MyClass.this, MyClass.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Вы можете использовать это, чтобы обновить активность внутри себя.

finish();
startActivity(getIntent());

Самый простой способ - позвонить onCreate(null); и ваша деятельность будет как новая.

Вы можете вызвать этот метод:

recreate();

Попробуй это

Simple way

 Intent intent=new Intent(Current_Activity.this,Current_Activity.class);
    startActivity(intent);
    finish();

Я думаю, что лучшим выбором для вас является использование SwipeRefreshLayout View в вашем макете. Затем установите RefreshListener как.

mySwipeRefreshLayout.setOnRefreshListener(
            new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    Log.i("Fav ", "onRefresh called from SwipeRefreshLayout");

                    // This method performs the actual data-refresh operation.
                    // The method calls setRefreshing(false) when it's finished.
                    request();  // call what you want to update in this method
                    mySwipeRefreshLayout.setRefreshing(false);
                }
            }
    );

Для более подробной информации нажмите на эту ссылку

От диалога к деятельности, которую вы хотите обновить. Если это не первое занятие!
Вот так: mainActivity >> objectActivity >> диалог
В вашем диалоговом классе:

  @Override
public void dismiss() {
    super.dismiss();
   getActivity().finish();
    Intent i = new Intent(getActivity(), objectActivity.class);  //your class
    startActivity(i);

}
Другие вопросы по тегам