안드로이드 : 역사 스택에서 삭제 된 활동 인스턴스

wawanopoulos :

나는 다음과 같은 간단한 시나리오를 가지고 :

  • 한 활동이라고 ListCarsActivity.kt 자동차의 목록이 표시됩니다. 사용자가 FloatingActionButton 클릭하면라는 또 다른 활동 열립니다 AddCarActivity.kt을
  • 상의 사용자가 클릭하면 추가 자동차 버튼, 나는 추가 된 자동차가 이제 표시되는 초기 활동 ListCarsActivity.kt에 갈 새로운 의도를 시작합니다.

문제 : 지금부터, 나는 뒤로 버튼을 클릭하면 ListCarsActivity는 두 번째로 표시됩니다.

어떻게 역사 스택에서 ListCarsActivity의 이전 항목을 지우려면?

여기에 이미지 설명을 입력

Rakshit Nawani :

당신의 전화 AddCarActivity.kt 당신의 내부에 아래와 같은 활동을 ListCarsActivity.kt

val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code

지금에 startActivityForResult가하는 일 위의 코드가 다른 활동이나 소스에서 데이터를 다시받을 의도라는 것이다 (등 카메라, 연락처, 등)

이제 모든 일이 당신에 완료되면 AddCarActivity.kt 모든 아래 수 있습니다 의도 결과 등을 얻을 수

                Intent intent = getIntent();
                intent.putExtra("key", data); // if you wanted to get data 
                setResult(RESULT_OK, intent);
                finish();

그리고 당신의 내부 ListCarsActivity.kt 당신은 추가해야 하여 onActivityResult 에서 데이터를 얻을 것이다 AddCarActivity.kt을

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    try {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            if (requestCode == 1) { //Your request code here
                Object obj = data.getParcelableExtra("key");
                 //Do as per your needs

            }
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

첫 번째 활동에서 새로 추가 된 데이터 등을 반환하기를 원한다면이, 그것은 제 3 자 libs와의 사용없이 인출 할 수있다.

그것을 시도하고 당신을 위해 일했다면 알려 않습니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=7920&siteId=1