我遇到的問題正如標題所示。我進行了authorize()調用,但我永遠無法調用authorizeCallback(),因爲onActivityResult()永遠不會被調用。 SSO完成,因爲它顯示權限屏幕(不允許/允許),並且我的Facebook設置頁面上顯示應用程序批准。有任何想法嗎?我認爲這可能與活動的launchMode有關,但刪除了「singleInstance」,但沒有什麼區別。facebook android SSO完成,但活動關閉時未調用onActivityResult()
正如我上面提到的,我可以確認在Facebook.java中啓動的權限活動。
try {
Log.e("@@@", "Starting activity");
activity.startActivityForResult(intent, activityCode);
} catch (ActivityNotFoundException e) {
didSucceed = false;
}
對於它的價值,我可以確認下面使用的代碼。
我已經實現了authorizeCallback()方法在onActivityResult():
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mStateHolder.getFacebook().authorizeCallback(requestCode, resultCode, data);
}
..但它從來沒有被調用。我使用的授權方法如下:
facebook.authorize(this, new String[]{ "user_birthday" }, new DialogListener() {
public void onComplete(Bundle values) {
Log.e(TAG, "onComplete()");
// I make a request here..
}
// ...with the other methods as well
}
其它潛在有用的信息:
編輯:哦!經過多次搜索,我發現了這個問題。意圖中存在流氓Intent.FLAG_ACTIVITY_NO_HISTORY標誌(它不會將活動保留在堆棧中)。謝謝大家試圖回答這個問題。
EDIT2:刪除launchMode = singleInstance確實有所作爲btw ..我開始收到錯誤「無法讀取調用包的簽名」。
「activityCode」的值是什麼?有幾次我不小心使用了'0',並且根據不會導致調用'onActivityResult()'的文檔,即使'start'是用'startActivityForResult()'開始的。 – LeffelMania 2011-05-09 02:53:59