[android] Android에서 활동 재로드

AndroidActivity 에서 다시로드하는 것이 좋습니다 ?

가장 좋은 방법은 무엇입니까? this.finish그런 다음 this.startActivity활동과 함께 Intent?



답변

간단하게 사용할 수 있습니다

finish();
startActivity(getIntent());

Activity자체에서 새로 고치기 위해 .


답변

recreate () 메소드 후 깜박임 을보고 싶지 않은 사람들은 단순히

 finish();
 overridePendingTransition(0, 0);
 startActivity(getIntent());
 overridePendingTransition(0, 0);


답변

이것이 환경 설정 변경에서 돌아온 후 활동을 다시로드하기 위해 수행하는 작업입니다.

@Override
protected void onResume() {

   super.onResume();
   this.onCreate(null);
}

이것은 본질적으로 활동이 다시 그려 지도록합니다.

업데이트 : 더 좋은 방법은 recreate()메소드 를 호출하는 것입니다. 이로 인해 활동이 다시 작성됩니다.


답변

Intent를 사용하여 활동을 다시로드하기 위해 주어진 이전 답변을 보았습니다. 그것들은 작동하지만 Activity 클래스 자체에 주어진 recreate () 메소드를 사용하여 동일한 작업을 수행 할 수도 있습니다.

이것을 쓰는 대신

// 대화 상자를 닫으면 주 활동을 새로 고칩니다.

Intent refresh = new Intent(this, clsMainUIActivity.class);
startActivity(refresh);
this.finish();

이것은 이것을 작성하여 수행 할 수 있습니다

recreate();


답변

단순히 사용

this.recreate();

이것은 활동에서 onCreate 메소드를 트리거합니다.


답변

서둘러 응용 프로그램 중 하나에서 메시지 목록을 업데이트해야했기 때문에 대화 상자를 닫기 전에 기본 UI 활동을 새로 고쳤습니다.이 작업을 수행하는 더 좋은 방법이있을 것입니다.

// Refresh main activity upon close of dialog box
Intent refresh = new Intent(this, clsMainUIActivity.class);
startActivity(refresh);
this.finish(); //


답변

Android에는 활동의 생성 및 소멸을 처리하는 프로세스 관리 시스템이 포함되어있어 수동으로 활동을 다시 시작하면 얻을 수있는 이점을 크게 무효화합니다. 이에 대한 자세한 내용은 Application Fundamentals 에서 확인할 수 있습니다.

그러나 모범 사례는 onPause 및 onStop 메소드가 활동 요구를 절대적으로 최소화하기 위해 onLowMemory 를 보유하고 사용할 필요가없는 모든 자원을 해제하도록하는 것 입니다.