onUserInteraction()、onUserLeaveHint():
两个长的很像的方法,onUserInteraction()比较好理解,只要用户与Activity有交互就会调用,比如说按了个键、触了个屏、滚了个轨迹球…专业来讲就是只要有事件分发给Activity的时候就会首先调用onUserInteraction(),所以你去看Activity的源码可以发现,在dispatchXXXEvent()的方法体里面,首先就是调onUserInteraction()。哦,除了dispatchPopulateAccessibilityEvent(),这个好像是android系统设置里面有个什么辅助功能相关的交互吧。
onUserLeaveHint(),因为用户的选择从而让当前的Activity进入后台的时候就会回调这个方法,一定要注意,“用户的选择"和"进入后台”。比如,在当前Acitivity按下home键会回调onUserLeaveHint()方法;启动一个新的Activity(包括Dialog或者透明风格的Activity),前一个Activity会回调onUserLeaveHint()方法,其实这个情况这种说法不完全正确啊 ,如果你前一个Activity在startActivity()之前先调用了finish()方法,onUserLeaveHint()是不会调用的,因为此时前一个Activity就不仅仅是进入后台了,而是要被摧毁了…当然如果你的finish()方法写在startActivity()之后的话,还是会调用onUserLeaveHint()的;第三种情况,因为系统的调用而让你的Activity进入后台是不会走onUserLeaveHint()的,比如突然一个电话打进来的时候。以上三种情况的话特别要注意第二种,最后记录一