2014年1月11日 星期六

onActivityResult 無法接收到 resultCode與data

今日快樂的使用onActivityResult時,竟然收到resultCode=0與data=null。
不過requestCode到是正常,這可怪了,之前可用得好好的,網上查了一下,也沒找到答案。

想了想,這次使用setResult的時機是在onDestroy內呼叫的,會不會是這個原因呢?以往都是按下button才呼叫setResult,之後接著finish();離開這個Activity,這次剛好想在onDestroy才回傳,結果失敗了。

也有試著在onStop內做同樣的事,也是失敗,會不會onStop與onDestroy內原本就不能做setResult呢?

當然啦,細節還是以後再想,先解決問題,就先不要在onDestroy內呼叫setResult。改成在keyDown內呼叫,程式碼如下:
public boolean onKeyDown(int keyCode, KeyEvent e) {
    if(keyCode == KeyEvent.KEYCODE_BACK && 0==e.getRepeatCount() )        {
    Intent intent = new Intent();
    Bundle bundleBack = new Bundle();
    bundleBack.putInt("val", "100");
    intent.putExtras(bundleBack);      
    setResult(RESULT_OK, intent);
     finish();
    }
    return false;
}

沒有留言:

張貼留言