android:name属性值的前面加了一个点表示NewActivity时当前com.alvin.test下的类,如果类在应用的当前包下,可以省略点符号,如果在应用的子包下必须加点,如NewActivity类在com.alvin.test.user包下可以这样写:
<activity android:name=".user.NewAcitivity" />
requestCode用于标识结果数据来自哪个Activity触发startActivityForResult(Intent intent, int resultCode);
resultCode用于为结果数据定义唯一id
Activity的onSaveInstanceState()和onRestoreInstanceState()并不是生命周期方法,它们并不一定会触发。当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁一个Activity时,onSaveInstanceState()会被调用(由运行状态进入暂停状态或由暂停状态进入停止状态)。
但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。因为在这种情况下,用户的行为决定了不需要保存Activity的状态。
通常onSaveInstanceState()只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。
当屏幕的方向发生了改变,Activity会被销毁并且被重新创建,如果想在Activity被摧毁前缓冲一些数据,并且在Activity被重新创建后恢复缓冲的数据。可以重写Activity的onSaveInstanceState()和onRestoreInstanceState()方法。
锁定Activity运行时的屏幕方向
<activity>节点的android:screenOrientation属性
android:screenOrientation="portrait" //竖屏
android:screenOrientation="landscape" //横屏
全屏的Activity
//设置全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
在Activity的Title中加入进度条
//不明确进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
setProgressBarIndeterminateVisibility(true);
//明确进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
setProgress(5000);