public class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public void onResume() {
super.onResume();
if (?) {
... handle ...
}
}
@Override
public void onPause() {
super.onPause();
if (?) {
... handle ...
}
}
}
안녕하세요. onResume() 및 onPause() 중 일부를 처리해야하는 인스턴스 유지 단편을 가지고 놀고 자합니다. 나는 이것을 주 활동에 추가했으며, 지금까지는 한 가지를 제외하고는 위대한 활동을하고 있습니다. 응용 프로그램에서 다른 활동을 입력하면 응용 프로그램 설정을 가정 해 봅시다.이 프래그먼트는 여전히 화면을 뒤집을 때 onResume 및 onPause를 실행합니다. 내가 필요로 무엇확인 라이프 사이클 상태
이 단편에 부착되어 활동 여부를 확인하는 방법입니다, 전경에 있지 않습니다. isTaskRoot와 같은 것을 시도했지만,이 라이프 사이클 메소드가 실행되는 한 true를 반환합니다. 이제 Android가 onResume을 실행 한 후이 조각을 일시 중지 상태로 두는 것을 알고 있다면 onResume 메소드 내에서이를 확인하는 방법이 있어야합니까?
내가 필요로하는 것은 조각이 실제로 다시 시작하는지 여부를 알려주는 것입니다. 내가 말했듯이, 내가 설정 활동으로 활동을 변경하면, 현재 활동중인 활동이 아니더라도 주 활동에 속한 단편에서 onResume이 호출됩니다.이 경우, 프래그먼트가 실제로 다시 시작하지 않기 때문에 다시 시작하거나 일시 중지하십시오. 나는 활동이 배경에있을 때 이들이 호출되는 이유를 모르지만, 어쨌든, 콜백 내에서 프래그먼트 내에서 알릴 수있는 방법이 필요하다. –
두 번째 방법을 살펴 보겠습니다. MainActivity.onPause()가 MyFragment.setForeground (false)를 호출하면 MyFragment.isParentInForeground가 false로 설정됩니다. 그런 다음 MyFragment.onResume()은 isParentInForeground가 true 또는 false인지 확인하고 결정을 내릴 수 있습니다. BTW, 조각이 백그라운드에있을 때 MyFragment.onPause/onResume이 호출되는 것은 정말 이상합니다. ( – Y2i
Activity를 사용할 수 없습니다.이 라이브러리는 내가 원하는 작업에 조각을 주입하는 작은 라이브러리입니다. 나는 콜백이 인스턴스 유지 상태 때문에 호출된다고 생각한다. 좀 더 이상한 점은 클래스를 실행하고 백그라운드에서 onResume()에서 "this"부분을 구문 분석하면 Fragment.getActivity()가 null 인 것입니다.() 메소드 내에서 getActivity()를 호출하면 그렇지 않습니다. 그렇다면 현재 상태를 확인하기 위해 사용할 수 있습니다. –