facebook login api 必須在每個state 中做事情例如
public void onStart() { Session.getActiveSession().addCallback(this); } public void onStop() { Session.getActiveSession().removeCallback(this); } public void onActivityResult(int requestCode, int resultCode, Intent data) { Session.getActiveSession().onActivityResult((Activity)context, requestCode, resultCode, data); }
當我們在Nest Fragment的時候(ex :TabHost+ Viewpager),onActivityResult可能會沒有被呼叫到,
這就會造成login失敗,最好的方法就是不要在Nest Fragment裡做 facebook login,否則就必須想辦法在ParentFragment (通常為TabHost的那個Fragment)中呼叫 子fragment 的onActivityResult
不過這個方法也不能100%的避掉問題,有時候 ParentFragment的 onActivityResult也不會被呼叫到。
所以回到最原始的解法,當必須在Nest Fragment中呼叫login時,還是偷偷開一個fragment或Activity做login的動作吧..
沒有留言:
張貼留言