《Android权威编程指南》学习笔记

  1. 调用startActivityForResult启动的Activity的回传方法是setResult(int resultCode, Intent data),这个方法的resultCode一般有RESULT_OK、RESULT_CANCELED以及RESULT_FIRST_USER。OK和CANCELED一般可以对应确认按钮和取消按钮的返回值。如果我们的活动没调用setResult方法就结束了,系统还是会返回resultCode的。比如我们按手机的back按键结束了活动,则上一个活动会受到RESULT_CANCELED。
    又看了下,onBackPressed()方法会设置RESULT_CODE为CANCELD,所以如果我们在onBackResult()方法里写setResult()的话,需要写在super.onBackPressed()前面。
    public void onBackPressed() {
        setResult(RESULT_OK, intent);
        super.onBackPressed();
    }

也就是说同时setResult()两次的话,前边的生效,这点不是很肯定。

2.不要在Fragment中处理被托管的Activity的生命周期,例如getActivity().finish()
如果非要在Fragment里结束Activity,可以试试调用Activity的onBackPressed()方法。

3.ViewPager不支持边距,即它的下一级布局layout_margin无效,解决方法很简单,给下一级布局套一层LineLayout。

你可能感兴趣的:(《Android权威编程指南》学习笔记)