bestsource

Android View 모델 대 View 모델

bestsource 2023. 8. 2. 09:17
반응형

Android View 모델 대 View 모델

Android Architecture Components 라이브러리의 도입과 함께 다음과 같은 몇 가지 새로운 클래스가 도입되었습니다.AndroidViewModel그리고.ViewModel하지만, 저는 이 두 수업의 차이점을 이해하는 데 어려움을 겪고 있습니다.설명서는 다음과 같이 간단하게 설명합니다.AndroidViewModel다음과 같이:

애플리케이션 컨텍스트 인식ViewModel

간결함은 고맙지만, 이것이 정확히 무엇을 의미합니까?언제 사용할지 선택해야 합니다.AndroidViewModel위에ViewModel그리고 부통령은?

Android View 모델은 애플리케이션 컨텍스트를 제공합니다.

View 모델 내에서 컨텍스트를 사용해야 하는 경우 AVM(Android View Model)을 사용해야 합니다. AVM에는 애플리케이션 컨텍스트가 포함되어 있기 때문입니다.컨텍스트 호출을 검색하려면 다음과 같이 하십시오.getApplication()그렇지 않으면 일반 VM(View Model)을 사용합니다.

Android View 모델에는 애플리케이션 컨텍스트가 있습니다.정적 컨텍스트 인스턴스가 있으면 메모리 누수가 발생할 수 있기 때문에 좋지 않다는 은 모두 알고 있습니다.그러나 실행 중인 애플리케이션에는 애플리케이션 인스턴스가 하나만 있기 때문에 정적 애플리케이션 인스턴스를 갖는 것은 생각보다 나쁘지 않습니다.

따라서 특정 클래스에서 응용 프로그램 인스턴스를 사용하고 보유하는 것은 일반적으로 문제가 되지 않습니다.그러나 애플리케이션 인스턴스가 이러한 인스턴스를 참조하는 경우에는 참조 주기 문제로 인해 문제가 됩니다.

애플리케이션 인스턴스에 대해서도 참조하십시오.

Android View 모델 장치 테스트에 문제가 있음

AVM은 장치 테스트에 문제가 있는 응용 프로그램 컨텍스트를 제공합니다.장치 테스트는 컨텍스트와 같은 Android 라이프사이클을 처리하지 않아야 합니다.

마침내 좀 더 간단한 설명을 들었습니다. 조금은...AndroidViewModel 클래스는 ViewModel의 하위 클래스로, UI 관련 데이터를 저장 및 관리하도록 설계되었으며 UI에 대한 데이터를 준비 및 제공하고 구성 변경에도 데이터가 자동으로 유지되도록 합니다.

Android View Model과의 유일한 차이점은 응용프로그램 컨텍스트가 제공된다는 것입니다. 이는 시스템 서비스를 받기 위해 컨텍스트가 필요하거나 유사한 요구사항이 있는 경우 유용합니다.굵게 표시된 텍스트를 사용하면 더 명확하게 감지할 수 있습니다.

Android View Model은 View Model의 하위 클래스입니다.이러한 차이점은 응용프로그램 컨텍스트를 전달할 수 있다는 것입니다. 응용프로그램 컨텍스트는 예를 들어 저장소에서 데이터베이스를 인스턴스화하는 데 필요할 때마다 사용할 수 있습니다.

Android View Model은 응용 프로그램 컨텍스트 인식 View Model입니다.

Android View 모델:

public class PriceViewModel extends AndroidViewModel {
private PriceRepository priceRepository;

public PriceViewModel(@NonNull Application application) {
    super(application);
    priceRepository= new PriceRepository(application);
    allPrices = priceRepository.getAllPrices();
}

모델 보기:

public class PriceViewModel extends ViewModel {
public PriceViewModel() {
    super();
}

응용프로그램 컨텍스트가 필요한 경우에만 Android View Model을 사용해야 합니다.

활동 참조 또는 활동을 참조하는 보기를 보기 모델에 저장해서는 안 됩니다.View 모델은 활동 기간보다 오래도록 설계되어 메모리 누수를 유발하기 때문입니다.

AndroidViewModel를 제공합니다.application context에 반에면.ViewModel하지 않다.당신이 이해해야 할 중요한 것은Google으로 사을권니다합을 사용하는 것이 .ViewModel그리고 아닌AndroidViewModel.

사용하지 마십시오.AndroidViewModel꼭 필요한 경우를 제외하고는

참고 항목: Google DOC

언급URL : https://stackoverflow.com/questions/44148966/androidviewmodel-vs-viewmodel

반응형