您的位置:首页 > 其它

Activity相关内容总结

2016-08-07 18:18 337 查看
/*----------------------------------------
*-描述--Activity相关内容总结.
*-描述--S1.Activity的7个生命周期
*  ☆☆☆☆☆单独活动生命周期:
*  1.Activity创建的时候:onCreate() => onStart() => onResume()
*  2.按下home键或进入其他活动(失去焦点):onPause() => onStop()
*  3.再进入(重获取焦点):onRestart() => onStart() => onResume()
*  4.退出:onPause() => onStop() => onDestroy()
*  5.弹出对话框(失去焦点):没走生命周期?
*  6.横竖屏切换:横 => 竖或反过来
*      重走生命周期onPause() => onStop() => onDestroy() ... onResume()
*  7.设置横竖屏却换不走生命周期:Activity注册列表中添加属性
*      android:configChanges="keyboardHidden|orientation|screenSize"
*  ☆☆☆☆活动的7个生命周期描述:
*  -1. void onCreate(Bundle savedInstanceState) Activity被创建的时候
*  -2. void onStart() activity变为在屏幕上对用户可见时调用。
*  -3. void onResume() activity开始与用户交互时调用(无论是启动还是重新启动一个
*      活动,该方法总是被调用的)。
*  -4. void onPause() activity被暂停时调用,该方法用于保存活动状态的,也是保护现场,压栈等
*  -5. void onStop() activity被停止并转为不可见阶段及后续的生命周期事件时调用。
*  -6. void onRestart() 重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。
*  -7. void onDestroy()    activity被完全从系统内存中移除时调用,该方法被调用可能是
*      因为有人直接调用onFinish()方法或者系统决定停止该活动以释放资源
*  ☆其他相关方法
*  -1.窗口焦点变化 onWindowFocusChanged(boolean hasFocus)
*  -2.当系统资源不足而销毁活动时,会把View的状态信息保存到Bundle savedInstanceState
*      重新创建时又把参数加载出来,可以用于屏幕方向旋转时数据保存等操作
*      onCreate(Bundle savedInstanceState)
*      onSaveInstanceState(Bundle outState)
*      onRestoreInstanceState(Bundle savedInstanceState)
*     参考:
*      http://blog.csdn.net/shulianghan/article/details/38297083 *      http://blog.sina.com.cn/s/blog_618199e60101g1k5.html *-描述--S2.传值与跳转
*  ☆☆活动的注册:设置name的属性为包名+类名
*  -1.<activity android:name=".basic.dir.basic1.ModxBasic1Activity"/>
*  -2.label属性:值是Activity显示的标题 android:label="ModxBasic1Activity"
*  ☆☆Activity的跳转:
*  -1.从桌面图标到APP的跳转
*      <intent-filter>
*          <action android:name="android.intent.action.MAIN" />
*          <category android:name="android.intent.category.LAUNCHER" />
*      </intent-filter>
* -2.显示意图 直接跳转到该APP的下一个活动
*      Intent intent = new Intent(BActivity.this, CActivity.class);
*      startActivity(intent);
* -3.隐式意图 使用一个意图跳转到两个已经配置了该意图的应用
*      Intent intent = new Intent("com.example.activity");
*      startActivity(intent);
*      !!需注册
*          <intent-filter>
*              <action android:name="com.example.activity" />
*              <category android:name="android.intent.category.DEFAULT" />
*          </intent-filter>
*  ☆☆☆Activity的传值方式
*  -1.在Intent 对象中,可以放入各种数据类型
*      value值可以是基本数据类型及字符串、Bundle对象、实现Serializable接口或Parcelable接口的对象
*      intent还封装了一些传送数组、ArrayList集合的方法
*      intent.putExtra("key", value)
*  -2.创建一个Bundle(数据包)对象,然后调用Bundle对象的put方法来来存入数据,
*      最后把Bundle对象存入Intent中
*      !!bundle对象可以理解成一个Map键值对
*      bundle传送的数据类型与intent相同,但bundle封装了更多方法
*  -3.startActivityForResult()传值是前后两个活动的数据交换
*      A活动启动下一个活动并加上一个请求码,B收到请求码通过intent把数据回传,并结束B活动,
*      完成数据的交互。使用相对局限、麻烦
*      A startActivityForResult(intent,requestCode);
*          onActivityResult(int requestCode, int resultCode, Intent data)
*      B setResult(resultCode,intent) 返回数据
*      finish()
*  -4.使用全局对象Application
*      1).MyApplication extends Application;
*      2).<application android:name=".MyApplication" manifest设置属性
*      3).getApplication获取Application对象,强转MyApplication,获取变量
*          强转MyApplication.XXX
*  -5.第三方封装工具eventBus
*-描述--S3.扩展
*  ☆☆☆活动与Fragment的生命周期:
*  ☆☆☆活动与Service的生命周期:
*  ☆☆☆活动的生命周期与View绘制方法:
*-描述--S4.Activity的启动模式
*  <!-- android:launchMode="singleTop" 处于栈顶时不重新创建  -->
*  <!-- android:launchMode="singleInstance" 所在任务栈中,只有自己一个实例 -->
*  <!-- android:launchMode="singleTask" 不重新创建,但会清除位于其上的任务 -->
*  <!-- android:launchMode="standard" 每次跳转重新创建  -->
*-描述--None.
*-描述--B1.None.
*---------------------------------------------------------------------------*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: