Activity 知识总结

Activity的四种创建模式

1.standard 模式
这是默认模式,无需设置,每次激活Activity时都会创建Activity实例,并放入任务栈中。相当于入栈,按back键返回到前一个Activity相当于退栈。
2.singleTop 模式
如果在任务的栈顶正好存在该Activity的实例,就重用该实例(会调用实例的 onNewIntent()),否则就会创建新的实例并放入栈顶
3.singleTask 模式
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent() )。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4.singleInstance 模式
在一个新栈中创建该Activity的实例,并让多个应用共享该栈中的该Activity实例。

Activity保存状态

1.onSaveInstanceState(),onRestoreInstanceState(Bundle)
在onSaveInstanceState保存数据,在onRestoreInstanceState中获取数据
onSaveInstanceState()方法,调用将发生在onPause()或onStop()方法之前
2.在onPause向数据库插入数据

设置全屏

在setContentView之前

// 设置全屏模式
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 // 去除标题栏
 requestWindowFeature(Window.FEATURE_NO_TITLE);

改变activity窗口的大小

Window w=getWindow();
 w.setBackgroundDrawableResource(resourceID);//设置窗口背景
WindowManager.LayoutParams layoutParams  = w.getAttributes();
layoutParams.height = 200; 
layoutParams.width= 200;
layoutParams.gravity = Gravity.TOP;
layoutParams.x=50;//距离Gravity属性的距离
layoutParams.y=50;
layoutParams.alpha = 0.5;//0:完全透明,1:不透明
w.setAttributes(layoutParams);

消除横竖屏影响

将Activity的android:configChanges属性为orientation|screenSize或者orientation|screenSize|keyboardHidden

附:
当系统因为内存不足(优先级更高的应用需要内存,请看上图红框)要回收Activity占用的资源时,Activity在执行完onPause()方法后就会被销毁,有些生命周期方法onStop(),onDestory()就不会执行。当再回到此Activity时,是从onCreate方法开始执行。

你可能感兴趣的:(Activity 知识总结)