나는 이상한 문제가 있습니다. getActivity() 메서드 항상은 조각 내부에 null을 반환합니다. onAttach() 및 onCreateView()가 실행을 마친 후에이를 호출합니다.() (이 코드는 조각 활동에서 onCreate()로부터 호출되는) 안쪽 getActivity()는 항상 조각 안에 null을 반환합니다.
는 :이 단편은 단편의 스택을 포함하는 FragmentActivity() 안에 살고 및 I 그것에 단편을 추가하는 방법은
SmartFragment fragment;
fragment = (SmartFragment) Fragment.instantiate(this,
fragmentClassName, params);
mStackOfFragments.add(fragment);
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.add(R.id.tabcontent, fragment);
trans.addToBackStack(null);
trans.commitAllowingStateLoss();
나는 분명히 충분히 희망
편집 1 :
getActivity()를 호출 :
,protected OnDoneListener nDoneListener = new OnDoneListener() {
@Override
public void OnDone(final int counter, final String name) {
if (getActivity() != null)
((TabActivity) getActivity()).RunOnUiThread(new Runnable() {
... ...
이 콜백은 다른 클래스에서 호출되고있다.
편집 2 :
class MemoryManager()
{
private OnDoneListener nDoneListener;
public void setOnDoneListener(OnDoneListener onDoneListener)
{
this.onDoneListner = onDoneListener;
}
public void updateUiOnRequestFinish()
{
onDoneListener.onDone();
}
}
MemoryManaget 자체가 다른 콜백()에서 updateUiOnRequestFinish 호출
편집 3 :
FragmentManager 로그는 다음과 같습니다
04-08 18:44:05.950: V/FragmentManager(16280): Commit: BackStackEntry{41f9bd60}
`04-08 18:44:05.950: D/FragmentManager(16280): mName=null mIndex=-1 mCommitted=false
04-08 18:44:05.950: D/FragmentManager(16280): Operations:
04-08 18:44:05.950: D/FragmentManager(16280): Op #0: ADD FragmentMyProfile{41f9bc20 id=0x7f070126}
04-08 18:44:05.950: V/FragmentManager(16280): Setting back stack index 0 to BackStackEntry{41f9bd60}
04-08 18:44:05.950: V/FragmentManager(16280): Run: BackStackEntry{41f9bd60 #0}
04-08 18:44:05.950: V/FragmentManager(16280): Bump nesting in BackStackEntry{41f9bd60 #0} by 1
04-08 18:44:05.950: V/FragmentManager(16280): Bump nesting of FragmentMyProfile{41f9bc20 id=0x7f070126} to 1
04-08 18:44:05.950: V/FragmentManager(16280): add: FragmentMyProfile{41f9bc20 id=0x7f070126}
04-08 18:44:05.950: V/FragmentManager(16280): Allocated fragment index FragmentMyProfile{41f9bc20 #0 id=0x7f070126}
04-08 18:44:05.950: V/FragmentManager(16280): moveto CREATED: FragmentMyProfile{41f9bc20 #0 id=0x7f070126}
04-08 18:44:05.950: V/FragmentManager(16280): moveto ACTIVITY_CREATED: FragmentMyProfile{41f9bc20 #0 id=0x7f070126}
04-08 18:44:05.990: V/FragmentManager(16280): moveto STARTED: FragmentMyProfile{41f9bc20 #0 id=0x7f070126}
04-08 18:44:06.030: V/FragmentManager(16280): moveto RESUMED: FragmentMyProfile{41f9bc20 #0 id=0x7f070126}
`
그리고 그것은 나에게 잘 보인다. 그래서이 버그는 콜백에서 getActivity()를 호출하는 방식과 관련이 있다고 생각합니다. 당신이 "android.support.v4.app를 사용하는 경우
단편 수명주기에 익숙하지 않은 경우 이상하게 보입니다 ... http://developer.android.com/guide/components/fragments.html#CoordinatingWithActivity ...이 단락 앞의 몇 줄을 확인하십시오 ... Activity Constructor에서 Activity에 Fragment를 추가 했습니까? – Selvin
getActivity() 줄에 코드를 넣을 수 있습니까? –
Selvin : 귀하의 의견에 따르면 이것이 사소한 문제라는 것을 암시합니다. 물론 당신이 옳았기를 바랄뿐입니다. 나는이 링크와 내용을 알고 있고 여전히이 문제가있다. – Nativ