Ответ 1
public void onClick (View v){
Intent intent = getIntent();
finish();
startActivity(intent);
}
Я хочу запрограммировать приложение для Android, чтобы обновить его текущую активность в ButtonClick. У меня есть одна кнопка в верхней части макета активности, которая будет выполнять эту работу. Когда я нажимаю кнопку, текущая активность должна перезагружаться снова - точно так же, как перезагрузка устройства.
Спасибо
public void onClick (View v){
Intent intent = getIntent();
finish();
startActivity(intent);
}
Вы можете попробовать это
finish();
startActivity(getIntent());
Этот вопрос задавали раньше: Как перезапустить действие Android
В упражнении вы можете вызвать recreate()
для "воссоздания" активности
(API 11 +)
Это кнопка кнопки обновления, но она хорошо работает в моем приложении. in 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();
}
вот что мне показалось здесь.
Просто используйте его или добавьте его в помощник статического класса и просто вызовите его из anywher в своем проекте.
/**
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);
}
}
Он должен начать снова и удалить все экземпляры предыдущей текущей активности.
Нет, это не должно быть.
Он должен обновить свои данные на месте (например, requery()
Cursor
). Тогда не будет никаких "случаев предыдущей текущей деятельности", о которых можно было бы беспокоиться.
Вы можете попробовать следующее:
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);
Вы можете использовать:
startActivity(MyClass.this, MyClass.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Самый простой способ - вызвать onCreate(null);
, и ваша деятельность будет как новая.
От диалога к активности, которую вы хотите обновить. Если это не первая активность!
Пример: mainActivity → objectActivity → диалог
В вашем классе диалога:
@Override
public void dismiss() {
super.dismiss();
getActivity().finish();
Intent i = new Intent(getActivity(), objectActivity.class); //your class
startActivity(i);
}
Простой способ
Intent intent=new Intent(Current_Activity.this,Current_Activity.class);
startActivity(intent);
finish();