android Activity相关笔记
2016-03-20 19:35
483 查看
1.显式 隐式启(action区分大小写)动Activity
重点: 必须在将被隐式启动的Activity里加上filter
在隐式启动时,intent必须完全匹配 intent-filter内容。若intent启动时没有addCategory()
则系统会默认为intent加上android.intent.category.DEFAULT,所以在intent-filter中,必须加上这句。如果intent-filter内有data属性的话,同样intent必须加上setDataAndType(),
不能分别调用setDate(),setType(),从Android源码中这两种方法里面都会将对方(data,type)至为null
注意: 隐式调用时最好判断一下是否有匹配的activity 方法如下:
1. 在Activity栈中 旧的Activity onPause() 后 新的Activity 启动,新的Activity onResume()后 旧的Activity 再onStop()
2. onSaveInstanceState()方法只在Activity被异常终止并且有机会重新显示时调用(例如横竖屏切换),正常情况下不会被调用,并且该方法在onStop之前被调用,但跟onPause()的调用没有既定的时间关系。当Activity被重新创建后,会把保存的Bundle同时传给onRestoreInstanceState(),onCreate()方法.这两种方法的区别是onRestoreInstanceState()一旦被调用,其参数Bundle一定不为null.
3. Activity设置启动模式的两种方法
静态:
动态添加:
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_xianshi: startActivity(new Intent(MainActivity.this,XianShiActivity.class)); break; case R.id.btn_yinshi: Intent it=new Intent(); it.setAction("yinshi"); startActivity(it); break; } }
重点: 必须在将被隐式启动的Activity里加上filter
<activity android:name=".YinShiActivity" android:label="@string/title_activity_yin_shi" > <intent-filter > <action android:name="yinshi"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
在隐式启动时,intent必须完全匹配 intent-filter内容。若intent启动时没有addCategory()
则系统会默认为intent加上android.intent.category.DEFAULT,所以在intent-filter中,必须加上这句。如果intent-filter内有data属性的话,同样intent必须加上setDataAndType(),
不能分别调用setDate(),setType(),从Android源码中这两种方法里面都会将对方(data,type)至为null
注意: 隐式调用时最好判断一下是否有匹配的activity 方法如下:
if(intent.resolveActivity(getPackageManager())!=null) startActivity(it);
1. 在Activity栈中 旧的Activity onPause() 后 新的Activity 启动,新的Activity onResume()后 旧的Activity 再onStop()
2. onSaveInstanceState()方法只在Activity被异常终止并且有机会重新显示时调用(例如横竖屏切换),正常情况下不会被调用,并且该方法在onStop之前被调用,但跟onPause()的调用没有既定的时间关系。当Activity被重新创建后,会把保存的Bundle同时传给onRestoreInstanceState(),onCreate()方法.这两种方法的区别是onRestoreInstanceState()一旦被调用,其参数Bundle一定不为null.
3. Activity设置启动模式的两种方法
静态:
<activity android:taskAffinity="com.example.androidstepdemo" android:name=".YinShiActivity" android:launchMode="singleTask" android:label="@string/title_activity_yin_shi" >
动态添加:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
相关文章推荐
- android性能优化
- Android IPC机制
- Android Activity相关笔记
- Android菜鸟的成长笔记——RadioGroup + ViewPager 联动时,ViewPager滑动不流畅
- Android常见第三方框架
- android四大组件之activity
- Android Toolbar
- RecyclerView简单使用
- Android自定义View基础篇(二)
- Android SurfaceView仿“是男人就下一百层”
- 安卓获取正在运行的应用和在后台运行的应用。兼容5.0之后的版本。
- Android项目结构
- android开发--ViewPager的简单应用
- Android之ListView性能优化——使用ConvertView和ViewHolder
- Android群英传笔记——第四章:ListView使用技巧
- Android群英传笔记——第四章:ListView使用技巧
- android viewpager change adapter ---在使用viewpager设置新的adapter的时候发现页面还是显示旧的adapter中的值
- Android中匹配器ArrayAdapter加载List显示顺序
- Android的日期时间格式化
- 安卓开发小知识-Animation入门